是否可以插入一系列同时编号的行,而不是单独插入每个?
因此,如果我有一个包含A列和B列的表格,并且我想要从1-50填充A列的50行,那么可以在同一个命令中完成所有操作而无需单独编写每个数字吗?
答案 0 :(得分:1)
正如你用Postgres标记的那样:
insert into some_table (col_a, col_b)
select i, null
from generate_series(1,50) i;
手册中有关generate_series()
的更多详情:
http://www.postgresql.org/docs/current/static/functions-srf.html
答案 1 :(得分:1)
你还用mysql标记了这个。
如果你有一个整数的实用程序表(0-9,我认为比一系列UNION更简单),那么你可以模仿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 |
+----+---+