Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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
复制表并在MySQL中添加具有值的新第一列_Mysql_Sql_Insert_Mariadb_Create Table - Fatal编程技术网

复制表并在MySQL中添加具有值的新第一列

复制表并在MySQL中添加具有值的新第一列,mysql,sql,insert,mariadb,create-table,Mysql,Sql,Insert,Mariadb,Create Table,我想创建一个MySQL表,其中包含一个值为的新列。下表为原始表格: Column A B C Value1 1 2 3 Value2 4 5 6 复制后,新表如下所示,新列位于表的开头: Column A' A B C Value1 1 1 2 3 Value2 1 4 5 6 由于新列是第一列,并用value而不是NULL填充,所以我不能像旧表那样插入或创建所有内容。我该怎么做?谢谢 您可以将新值作为文本放入从旧表获取数据的SELECT语句中 CREATE TABLE newTable

我想创建一个MySQL表,其中包含一个值为的新列。下表为原始表格:

Column A B C
Value1 1 2 3
Value2 4 5 6
复制后,新表如下所示,新列位于表的开头:

Column A' A B C
Value1 1  1 2 3
Value2 1  4 5 6

由于新列是第一列,并用value而不是NULL填充,所以我不能像旧表那样插入或创建所有内容。我该怎么做?谢谢

您可以将新值作为文本放入从旧表获取数据的
SELECT
语句中

CREATE TABLE newTable ( /* column specifications here */ ) AS
SELECT 1, oldTable.*
FROM oldTable

您可以将新值作为文本放入从旧表获取数据的
SELECT
语句中

CREATE TABLE newTable ( /* column specifications here */ ) AS
SELECT 1, oldTable.*
FROM oldTable

新列的值来自哪里?是否总是
1
?新列的值由我自己在复制过程中指定。更重要的问题是每行的值是否相同。如果不是,那么复制的代码应该如何知道每行的内容?是的。新列的每一行的值都相同。新列的值来自哪里?是否总是
1
?新列的值由我自己在复制过程中指定。更重要的问题是每行的值是否相同。如果不是,那么复制的代码应该如何知道每行的内容?是的。新列的每一行都有相同的值。如果将
1用作Aprime
或类似的值,则不需要列规范。@GordonLinoff我最初是这样写的,但后来决定将新列的数据类型设为默认值是一个糟糕的主意。我认为默认值是可以的,至少对于基类型是可以的,因为它与旧表中的相同(当然,可空性不会转移)。如果将
1用作Aprime
或类似的东西,则不需要列规范。@GordonLinoff我最初写的,但是后来决定让新列的数据类型默认是一个糟糕的主意。我认为默认值是可以的,至少对于基类型是可以的,因为它与旧表中的相同(当然,nullability不会转移)。