Mysql 将一系列数字作为行插入数据库
是否可以插入一系列同时编号的行,而不是逐个插入Mysql 将一系列数字作为行插入数据库,mysql,database,postgresql,Mysql,Database,Postgresql,是否可以插入一系列同时编号的行,而不是逐个插入 因此,如果我有一个包含a列和B列的表,我想要50行,a列从1到50填充,那么是否可以在同一个命令中完成这一切,而不分别写出每个数字 当您用Postgres标记此内容时: insert into some_table (col_a, col_b) select i, null from generate_series(1,50) i; 有关generate_series()的更多详细信息,请参见手册: 您还使用mysql为其添加了标签 如果您有一个
因此,如果我有一个包含a列和B列的表,我想要50行,a列从1到50填充,那么是否可以在同一个命令中完成这一切,而不分别写出每个数字 当您用Postgres标记此内容时:
insert into some_table (col_a, col_b)
select i, null
from generate_series(1,50) i;
有关generate_series()
的更多详细信息,请参见手册:您还使用mysql为其添加了标签 如果您有一个实用的整数表(0-9,我认为比一系列并集更简单),那么您可以模仿Postgres的聪明行为,如下所示:
DROP TABLE IF EXISTS ints;
CREATE TABLE ints(i INT NOT NULL PRIMARY KEY);
INSERT INTO ints VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table(a INT NOT NULL PRIMARY KEY,b CHAR(1) NOT NULL);
INSERT INTO my_table (a,b) SELECT i2.i*10+i1.i+1 n,'x' FROM ints i1 JOIN ints i2 HAVING n <= 50;
SELECT * FROM my_table;
+----+---+
| a | b |
+----+---+
| 1 | x |
| 2 | x |
| 3 | x |
| 4 | x |
| 5 | x |
| 6 | x |
| 7 | x |
| 8 | x |
| .. |.. |
| .. |.. |
| .. |.. |
| .. |.. |
| 46 | x |
| 47 | x |
| 48 | x |
| 49 | x |
| 50 | x |
+----+---+
如果存在ints,则删除表格;
创建表INT(i INT不是NULL主键);
插入整数值(0)、(1)、(2)、(3)、(4)、(5)、(6)、(7)、(8)、(9);
如果存在my_表,则删除表;
创建表my_TABLE(一个INT不为NULL的主键,一个CHAR(1)不为NULL);
插入my_表(a,b)选择i2.i*10+i1.i+1 n,'x'FROM ints i1 JOIN ints i2有n个可能的重复项,您可以将列设置为自动递增。啊,我明白了。对不起,我是数据库的新手。我会调查一下,尽管它的名字叫“自动增量”,但它不能保证“增量”。这不是它的目的!这不是那个问题的重复。你能解释一下我在等什么吗?它只是将列a设置为i
i是generate series结果的别名。它将50行插入表中,由函数generate\u series()