我正在尝试在一个命令中修改列数据类型和名称。
是否可以在一个代码行的一列上应用多个 alter 语句?这是正确的语法吗?
ALTER TABLE tb_table
ALTER COLUMN colum_date
SET DATA TYPE TIMESTAMP NOT NULL
RENAME COLUMN colum_date TO colum_timestamp;
Run Code Online (Sandbox Code Playgroud)
我一直在寻找相关的参考书目,但在网上找不到太多信息。
根据文档,重命名列是一个不能与其他操作组合的操作,但需要它自己的语句。所以不,你不能在一份声明中做你想做的事。
但您可以在一笔交易中完成。不过,设置数据类型和设置NOT NULL约束需要两个操作。但这两项操作都可以在一个声明中。
BEGIN TRANSACTION;
ALTER TABLE tb_table
ALTER COLUMN colum_date
SET DATA TYPE TIMESTAMP,
ALTER COLUMN colum_date
SET NOT NULL;
ALTER TABLE tb_table
RENAME COLUMN colum_date
TO colum_timestamp;
COMMIT TRANSACTION;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2182 次 |
| 最近记录: |