标签: foreign-keys

Linq to sql导致外键约束错误

这是重要的代码.

       TournamentTeam newTeam = new TournamentTeam();
        TournamentTeams.InsertOnSubmit(newTeam);
        SubmitChanges();

        TournamentParticipant newSignup = new TournamentParticipant
        {
            CheckedIn = false,
            TournamentID = tournamentId,
            UserID = participant.UserID,
            TeamID = newTeam.TeamId
        };

        TournamentParticipants.InsertOnSubmit(newSignup);
        SubmitChanges();
Run Code Online (Sandbox Code Playgroud)

TournamentParticipants.TeamId在TournamentTeam.TeamID上有一个fk关系,TeamID是一个标识列

我不明白的是,当TournamentTeam获得插入时,它会获取新的身份值.即使我调试代码,新的注册也会收到新的团队ID.但是当涉及到生成插入时,它完全避免了这个值,并在select语句之前插入,它抓取了新的标识列.

exec sp_executesql N'INSERT INTO [dbo].[TournamentParticipants]([UserID], [TournamentID], [CheckedIn]) VALUES (@p0, @p1, @p2)

SELECT [t0].[TeamID] FROM [dbo].[TournamentParticipants] AS [t0] WHERE ([t0].[UserID] = @p3) AND ([t0].[TournamentID] = @p4)',N'@p0 int,@p1 int,@p2 bit,@p3 int,@p4 int',@p0=29805,@p1=247,@p2=0,@p3=29805,@p4=247
Run Code Online (Sandbox Code Playgroud)

如何让linq to sql使用我指定的团队id的值,或者在insert语句之前生成select语句?

foreign-keys foreign-key-relationship linq-to-sql

1
推荐指数
1
解决办法
3641
查看次数

如何在Microsoft Access中以编程方式删除外键约束

如何在Microsoft Access中以编程方式删除外键约束,最好使用SQL.对于初学者我不知道如何找到外键的名称.

我使用JDBC-ODBC桥从Java应用程序连接到Access.我想从我的Java应用程序中执行SQL.

我可以在RelationShip视图中看到Access中的关系,但似乎找不到名称.如果我能找到我希望的名字,我可以用ALTER TABLE语句删除它.

sql ms-access foreign-keys

1
推荐指数
1
解决办法
2254
查看次数

寻求嵌入式数据库替代SQLite.必须有外键约束和交易支持吗?

您是否知道任何具有外键约束和/或提供事务支持的SQLite替代方案(基于Portable/flatfile /无服务器)?

database sqlite transactions foreign-keys embedded-database

1
推荐指数
1
解决办法
495
查看次数

外键为空-性能下降

我有一个表文件夹,如果该文件夹具有父级,则该列的parent_id引用ID,如果没有,则parent_id为null。那是好的解决方案,还是该连接或其他解决方案需要额外的表?外键可以根本为null吗,如果可以,此解决方案将有更大的执行时间?

table folder(
   id int primary key,            //primary key in my table
   parent_id int references id,   //foreign key on id column in same table
....
)
Run Code Online (Sandbox Code Playgroud)

mysql sql foreign-keys

1
推荐指数
1
解决办法
1958
查看次数

如何索引MS SQL中的所有外键?

我们有大型MS SQL数据库,包含许多表和外键.由于性能的原因,我们需要索引表中的所有外键,我们试图避免手动操作.有没有办法让MS SQL自动或使用某些工具?

使用的MS SQL服务器是MS SQL Server 2008 R2.

非常感谢.

sql-server indexing foreign-keys

1
推荐指数
1
解决办法
1149
查看次数

MySQL Big FK标识符

我正在尝试创建一个fk,但MySQL不允许它...

Identifier name 'foobarbaz_FK_CATALOG_PRODUCT_ENTITY_WEEE_DISCOUNT_PRODUCT_ENTITY' is too long [ CREATE TABLE `foobarbaz_weee_discount` (   `entity_id` int(10) unsigned NOT NULL DEFAULT '0',   `website_id` smallint(5) unsigned NOT NULL DEFAULT '0',   `customer_group_id` smallint(5) unsigned NOT NULL,   `value` decimal(12,4) NOT NULL DEFAULT '0.0000',   KEY `foobarbaz_FK_CATALOG_PRODUCT_ENTITY_WEEE_DISCOUNT_WEBSITE` (`website_id`),   KEY `foobarbaz_FK_CATALOG_PRODUCT_ENTITY_WEEE_DISCOUNT_PRODUCT_ENTITY` (`entity_id`),   KEY `foobarbaz_FK_CATALOG_PRODUCT_ENTITY_WEEE_DISCOUNT_GROUP` (`customer_group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ]
Run Code Online (Sandbox Code Playgroud)

有没有办法添加大fks?谢谢.

php mysql foreign-keys restriction foreign-key-relationship

1
推荐指数
1
解决办法
2912
查看次数

MySQL我的外键有什么问题吗?

我用注释标记的两个外键有什么问题?

创建数据库db; 使用db;

create table Flug(
Flugbez varchar(20),
FDatum Date,
Ziel varchar(20),
Flugzeit int,
Entfernung int,
Primary Key(Flugbez,FDatum));

create table Flugzeugtyp(
Typ varchar(20),
Hersteller varchar(20),
SitzAnzahl int,
Reisegeschw int,
primary key(Typ)
);

create table flugzeug(
Typ varchar(20),
SerienNr int,
AnschDatum Date,
FlugStd int,
primary key(Typ,SerienNr),
foreign key(Typ)references Flugzeugtyp(Typ));

create table Abflug(
Flugbez varchar(20),
FDatum Date,
Typ varchar(20),
Seriennr int,
Kaptaen varchar(20),
Primary key(Flugbez,FDatum,Typ,SerienNr),
Foreign key(Flugbez)references Flug(Flugbez) ,
- 外键(FDatum)引用Flug(FDatum),
外键(Typ)引用Flugzeugtyp(Typ)
- ,外键(SerienNr)引用Flugzeug(SerienNr)
);

当我取消注释这些时,我得到:

ERROR 1005(HY000):无法创建表'db.abflug'(错误号:150)

我使用MySQL Server 5.5的标准安装

mysql sql foreign-keys create-table

1
推荐指数
1
解决办法
166
查看次数

将数据插入到与外键链接的表中

首先,我尝试将此数据插入到由外键链接的表中,但没有得到答案.

我有3张桌子:

表:客户

ID -------LastName-------FirstName-------PhoneNumber
Run Code Online (Sandbox Code Playgroud)

表:订单

ID-------Status-------CustomerID
Run Code Online (Sandbox Code Playgroud)

表:OrderLine

ID-------OrderID-------Product-------Quantity-------PricePerUnit
Run Code Online (Sandbox Code Playgroud)

我运行以下查询

SqlCommand myCommand2 = 
   new SqlCommand(@"INSERT INTO Order (Status, CustomerID) 
                    VALUES(13016, SELECT ID FROM Customers WHERE FirstName = 'Garderp')", 
                  myConnection);`
Run Code Online (Sandbox Code Playgroud)

它抛出异常

Order附近的语法错误

如何在SQL Server 2008中使用外键将数据添加到表中,尤其是在这种特殊情况下?

c# foreign-keys sql-server-2008

1
推荐指数
2
解决办法
1万
查看次数

基于索引名称而不是表(列)创建外键

我有一个带有时间戳字段的表,我在其上创建了一个复合索引.

CREATE INDEX "IDX_NAME_A" ON TABLE "A" (a_id, extract(year FROM created_at))
Run Code Online (Sandbox Code Playgroud)

我有另一个表存储一年和a_id我希望有一个外键关系.

我似乎无法找到做我想要的语法.

ALTER TABLE "B" 
  ADD FOREIGN KEY(a_id, a_year) 
  REFERENCES A(a_id, extract(YEAR FROM created_at));
Run Code Online (Sandbox Code Playgroud)

生产:

ERROR:  syntax error at or near "("
Run Code Online (Sandbox Code Playgroud)

我也试过......

ALTER TABLE "B"
  ADD FOREIGN KEY(a_id, a_year) 
  USING INDEX "IDX_NAME_A";
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Table A
--------
a_id serial,
created_at timestamp default now()

Table B
-------
b_id serial
a_id integer not null,
a_year date_part('year')
Run Code Online (Sandbox Code Playgroud)

sql postgresql indexing foreign-keys

1
推荐指数
1
解决办法
222
查看次数

在mysql中重现这种死锁

我从SHOW ENGINE INNODB状态获得了信息

    *** (1) TRANSACTION: 
TRANSACTION 0 2799914, ACTIVE 1 sec, process no 4106, OS thread id 139808903796480 inserting
mysql tables in use 1, locked 1
LOCK WAIT 10 lock struct(s), heap size 1216, 7 row lock(s), undo log entries 3
MySQL thread id 4284, query id 2889649 localhost 127.0.0.1 test update
INSERT INTO shipping .....
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 436366 n bits 88 index `PRIMARY` of …
Run Code Online (Sandbox Code Playgroud)

mysql deadlock foreign-keys

1
推荐指数
1
解决办法
2149
查看次数