Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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 使用SELECT和一些默认值插入到_Mysql_Sql - Fatal编程技术网

Mysql 使用SELECT和一些默认值插入到

Mysql 使用SELECT和一些默认值插入到,mysql,sql,Mysql,Sql,我有桌子 person +--------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+----------------+ | id | int(1

我有桌子

person
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| id           | int(11)      | NO   | PRI | NULL    | auto_increment |
| name         | varchar(100) | NO   |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+

我想执行以下语句(对于每个
person
聊天室中添加一行
person.id
DEFAULT
以及
id
col2
列的
NULL
值)

但它不起作用。
有人可以更正查询吗?

您的
id
字段是
自动增量
,因此您可以将其从查询中删除,它将自动将行设置为下一个值。另外,由于
col2
的默认值为
NULL
,因此也可以将其排除在查询之外。它将自动设置为默认值

INSERT INTO chatroom (col1) SELECT id FROM person

第一个列表必须包含列名,而不是值。要插入默认值,只需从列表中忽略它:

INSERT INTO chatroom (col1, col2)
SELECT id, NULL
FROM person

查询中不需要包含
默认值
。试试这个:

插入聊天室(col1,col2)选择id为col1,person为空;


当INSERT语句中不包含列时,它会尝试使用默认值(如果可用)。

因为您的
聊天室
表的
id
列是自动递增的,所以不需要传递此列的值。在表中插入新行时,此列具有自动值。因此不需要
默认值

其次,
col2
将根据您的表定义接受
null
,因此也不需要传递此列的值,直到您有一些需要放入此列的值

所以您只需为此指定列,您就有了值

因此,如果您想在
col2
列中插入
null
值,请使用

INSERT INTO chatroom (col1) 
SELECT id FROM person;
INSERT INTO chatroom (col1,col2) 
SELECT id, col2 FROM person;
所以,如果您想在
col2
列中插入一些值,请使用

INSERT INTO chatroom (col1) 
SELECT id FROM person;
INSERT INTO chatroom (col1,col2) 
SELECT id, col2 FROM person;