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)); |

View on DB Fiddle

现在,您可以 EXECUTE 查询或直接 copy/paste 并手动执行