我有这张桌子:
Table1:
id text
1 lala
我想要第一行并复制它,但是id 1变为2。 你能帮我解决这个问题吗?
答案 0 :(得分:3)
SQL表没有“第一”行的概念。但是,您可以根据其特征选择一行。因此,以下方法可行:
insert into Table1(id, text)
select 2, text
from Table1
where id = 1;
另外请注意,在创建表时,可以使id列自动递增。语法因数据库而异。如果id
自动递增,那么您可以这样做:
insert into Table1(text)
select text
from Table1
where id = 1;
你会相信新行会有一个唯一的ID。
答案 1 :(得分:1)
凯特 - 戈登的回答在技术上是正确的。但是,我想了解更多有关为什么您想要这样做的信息。
如果您打算通过插入每个新行来增加字段,那么手动设置id列值并不是一个好主意 - 它很容易与两行试图发生冲突同时使用相同的ID。
我建议为此使用IDENTITY字段(MS SQL Server - 在MySQL中使用AUTO_INCREMENT字段)。然后你可以按如下方式进行插入:
INSERT INTO Table1 (text)
SELECT text
FROM Table1
WHERE id = 1
SQL Server会自动为id字段分配一个新的唯一值。