1

我有这张桌子:

Table1:
id   text
1     lala

我想取第一行并复制它,但是 id 1 更改为 2。你能帮我解决这个问题吗?

4

2 回答 2

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。

于 2013-05-22T14:01:12.403 回答
1

凯特-戈登的回答在技术上是正确的。但是,我想更多地了解您为什么要这样做。

如果您打算在插入每个新行时使字段增加,那么手动设置 id 列值不是一个好主意 - 尝试使用相同的两行时很容易发生冲突同时识别。

我建议为此使用 IDENTITY 字段(MS SQL Server -- 在 MySQL 中使用 AUTO_INCREMENT 字段)。然后,您可以按如下方式进行插入:

INSERT INTO Table1 (text)
SELECT text 
FROM Table1
WHERE id = 1

SQL Server 会自动为 id 字段分配一个新的唯一值。

于 2013-05-22T14:08:32.437 回答