gpt4 book ai didi

mysql - 创建为选择并添加一个额外的列

转载 作者:行者123 更新时间:2023-12-01 00:26:20 25 4
gpt4 key购买 nike

我想创建一个 MySQL 表作为另一个表的副本,如下所示:

CREATE TABLE new_tbl SELECT * FROM orig_tbl;

不同之处在于,如果可能的话,我想在创建时添加另一个空列,该列将在稍后填充。

我知道我可以像上面那样创建它然后使用 ALTER TABLE,但我的想法是,如果数据量很大,ALTER 会花费很长时间(如果这是错误的请反驳我),如果我想要的是可能的,可以保存。

那么,假设我想要一个额外的 extra_col - varchar(64),我的原始查询会是什么?

谢谢。

最佳答案

根据 CREATE TABLE ... SELECT Syntax 记录:

You can create one table from another by adding a SELECT statement at the end of the CREATE TABLE statement:

CREATE TABLE <strong><em>new_tbl</em></strong> SELECT * FROM <strong><em>orig_tbl</em></strong>;

MySQL creates new columns for all elements in the SELECT.

[ deletia ]

Notice that the columns from the SELECT statement are appended to the right side of the table, not overlapped onto it.

[ deletia ]

In a table resulting from CREATE TABLE ... SELECT, columns named only in the CREATE TABLE part come first. Columns named in both parts or only in the SELECT part come after that. The data type of SELECT columns can be overridden by also specifying the column in the CREATE TABLE part.

因此:

CREATE TABLE new_tbl (
extra_col VARCHAR(64)
) SELECT * FROM orig_tbl

关于mysql - 创建为选择并添加一个额外的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13972768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com