mysql - 使用 SELECT 和一些 DEFAULT 值插入 INTO

标签 mysql sql

我有 table

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

chatroom
+-----------+---------+------+-----+---------+----------------+
| Field     | Type    | Null | Key | Default | Extra          |
+-----------+---------+------+-----+---------+----------------+
| id        | int(11) | NO   | PRI | NULL    | auto_increment |
| col1      | int(11) | YES  |     | NULL    |                |
| col2      | int(11) | YES  |     | NULL    |                |
+-----------+---------+------+-----+---------+----------------+

并且我想执行以下语句(对于每个 personchatroom 中添加一行,分别包含 person.ididcol2 列的 >DEFAULTNULL 值)

INSERT INTO chatroom (DEFAULT, col1, NULL) SELECT DEFAULT, id AS col1, NULL FROM person;

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

最佳答案

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

INSERT INTO chatroom (col1) SELECT id FROM person

关于mysql - 使用 SELECT 和一些 DEFAULT 值插入 INTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27660827/

相关文章:

mysql - 如何编写查询以在日期范围内显示 'breaks'?

sql - 从优化中删除

sql - 获取相关对象的序号

python-mysql : How to get interpolated query string?

php - 我可以预测我的 Zend Framework 索引有多大吗? (和一些快速 Q :s)

php - 如何在 MySQL 中高效地 INSERT 大量行?

sql - 在 Access 中选择和计数行的最佳方法

sql - PostgreSQL 自连接会忽略索引吗?

mysql - 尝试在 Mac OSX 上的带有 MySQL 的 virtualenv 中安装 Django CMS 时出错

mysql - MySQL :how to use Wildcard in Subquery?