将数据插入表 SQL Server
Posted
技术标签:
【中文标题】将数据插入表 SQL Server【英文标题】:Inserting data into table SQL server 【发布时间】:2016-01-05 20:38:34 【问题描述】:如果我有 2 个表并且表 1 有一个主键 (userID) AutoIncrement 并且表 2 有一个外键 (userID) 到表 1 的 (userID)
当我在表 1 中插入新行时,第一行的 userID = 1
如果我再次插入,userID = 2。
那么在插入表 1 时如何保持表 2 的用户 ID 相同。例如,在表 2 中,我将密码添加到另一个表中。
我的问题是我应该在表 2(userID) 中添加一个 AUTOINCREMENT 并在我创建用户时在两个表中插入一个新值,或者还有其他方法吗?
【问题讨论】:
mysql 中有一些功能可以帮助解决这个问题。基本上:在表1中插入一条新记录,确定新的ID,然后插入到表2中。 2 或 3 个陈述(视情况而定),没什么好笑的。 dev.mysql.com/doc/connector-odbc/en/… 【参考方案1】:您必须在 Table2 中手动插入具有正确 ID 的数据。 MySQL 中没有这样的内置功能。
算法如下:
-
在表 1 中插入行。
获取新行的 ID。
在 Table2 中插入具有新 ID 的行。
【讨论】:
是的,用于检索最后一个 id 的功能是内置的......只要它是PRIMARY KEY
--> LAST_INSERT_ID();
【参考方案2】:
我想你要找的是这个......假设你的 ID 是 PK
和 AI
INSERT INTO yourTable (var1, var2 etc etc) VALUES ('val1', 'val2' etc etc);
SELECT LAST_INSERT_ID();
为了进一步..
INSERT INTO yourTable (var1, var2 etc etc) VALUES ('val1', 'val2' etc etc);
SET @last_id = LAST_INSERT_ID();
INSERT INTO yourTable2 (id, var1, var2) VALUES (@last_id, 'blah', 'blah');
【讨论】:
以上是关于将数据插入表 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章
如何将记录插入到 sql server express 数据库表中?
尝试将数据插入多个表时出错 [C# Winform SQL Server] [关闭]