MySQL,从 TableRow 创建 table
MySQL, create table from TableRow
我想知道是否可以从另一个现有的 Tables-Row 创建一个新的 Table。
例如:
Table: TablesX
ID | user* | row_1 | row_2 | row_3 | etc
----------------------------------------------------
1 | Carl | name1 | name2 | name3 | etc -> Create new Table, with refering columns
2 | Max | abc1 | abc2 | abc3 | etc
新建 table:用户*
ID | user* | name1 | name2 | name3 | etc <- Insert Row form Table "TablesX"
----------------------------------------------------
1 | Carl | info1 | info2 | info3 | etc
2 | Carl | x | x | x | etc
可以吗?我该如何处理?
非常感谢您的帮助:)
您可以通过将预期查询与值连在一起来动态生成 CREATE TABLE
查询:
架构(MySQL v5.7)
CREATE TABLE TablesX (
`ID` INTEGER,
`user*` VARCHAR(4),
`row_1` VARCHAR(5),
`row_2` VARCHAR(5),
`row_3` VARCHAR(5),
`etc` VARCHAR(3)
);
INSERT INTO TablesX
(`ID`, `user*`, `row_1`, `row_2`, `row_3`, `etc`)
VALUES
('1', 'Carl', 'name1', 'name2', 'name3', 'etc'),
('2', 'Max', 'abc1', 'abc2', 'abc3', 'etc');
查询#1
SELECT CONCAT('CREATE TABLE `user*` (ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, `user*` VARCHAR(255), `', t.row_1, '` VARCHAR(255), `', t.row_2, '` VARCHAR(255), `', t.row_3, '` VARCHAR(255));') "SQL"
FROM TablesX t
ORDER BY t.ID
LIMIT 1;
输出
| SQL |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CREATE TABLE `user*` (ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, `user*` VARCHAR(255), `name1` VARCHAR(255), `name2` VARCHAR(255), `name3` VARCHAR(255)); |
现在,您可以 EXECUTE
查询或直接 copy/paste 并手动执行
我想知道是否可以从另一个现有的 Tables-Row 创建一个新的 Table。 例如:
Table: TablesX
ID | user* | row_1 | row_2 | row_3 | etc
----------------------------------------------------
1 | Carl | name1 | name2 | name3 | etc -> Create new Table, with refering columns
2 | Max | abc1 | abc2 | abc3 | etc
新建 table:用户*
ID | user* | name1 | name2 | name3 | etc <- Insert Row form Table "TablesX"
----------------------------------------------------
1 | Carl | info1 | info2 | info3 | etc
2 | Carl | x | x | x | etc
可以吗?我该如何处理?
非常感谢您的帮助:)
您可以通过将预期查询与值连在一起来动态生成 CREATE TABLE
查询:
架构(MySQL v5.7)
CREATE TABLE TablesX (
`ID` INTEGER,
`user*` VARCHAR(4),
`row_1` VARCHAR(5),
`row_2` VARCHAR(5),
`row_3` VARCHAR(5),
`etc` VARCHAR(3)
);
INSERT INTO TablesX
(`ID`, `user*`, `row_1`, `row_2`, `row_3`, `etc`)
VALUES
('1', 'Carl', 'name1', 'name2', 'name3', 'etc'),
('2', 'Max', 'abc1', 'abc2', 'abc3', 'etc');
查询#1
SELECT CONCAT('CREATE TABLE `user*` (ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, `user*` VARCHAR(255), `', t.row_1, '` VARCHAR(255), `', t.row_2, '` VARCHAR(255), `', t.row_3, '` VARCHAR(255));') "SQL"
FROM TablesX t
ORDER BY t.ID
LIMIT 1;
输出
| SQL |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CREATE TABLE `user*` (ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, `user*` VARCHAR(255), `name1` VARCHAR(255), `name2` VARCHAR(255), `name3` VARCHAR(255)); |
现在,您可以 EXECUTE
查询或直接 copy/paste 并手动执行