Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL插入行并进行一次更改_Sql_Select_Insert - Fatal编程技术网

SQL插入行并进行一次更改

SQL插入行并进行一次更改,sql,select,insert,Sql,Select,Insert,我有这张桌子: Table1: id text 1 lala 我想取第一行并复制它,但id 1变为2。 您能帮我解决这个问题吗?SQL表没有第一行的概念。但是,您可以根据行的特征选择行。因此,以下方法可行: insert into Table1(id, text) select 2, text from Table1 where id = 1; 另一个注意事项是,在创建表时,可以使id列自动递增。语法因数据库而异。如果id是自动递增的,那么您可以执行以下操

我有这张桌子:

Table1:
id   text
1     lala
我想取第一行并复制它,但id 1变为2。
您能帮我解决这个问题吗?

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。

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。

凯特-戈登的答案在技术上是正确的。然而,我想知道更多关于你为什么要这样做

如果您的目的是让字段随着每一新行的插入而递增,那么手动设置id列值并不是一个好主意—两行试图同时使用同一id时很容易发生冲突

我建议为这个MS SQL Server使用一个标识字段——在MySQL中使用一个自动增量字段。然后,您可以按如下方式进行插入:

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

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

Kate-Gordon的答案在技术上是正确的。然而,我想知道更多关于你为什么要这样做

如果您的目的是让字段随着每一新行的插入而递增,那么手动设置id列值并不是一个好主意—两行试图同时使用同一id时很容易发生冲突

我建议为这个MS SQL Server使用一个标识字段——在MySQL中使用一个自动增量字段。然后,您可以按如下方式进行插入:

INSERT INTO Table1 (text)
SELECT text 
FROM Table1
WHERE id = 1
SQL Server将自动为id字段分配一个新的唯一值