gpt4 book ai didi

sql-server - 将 NOT NULL 列插入现有表

转载 作者:行者123 更新时间:2023-12-01 16:48:00 24 4
gpt4 key购买 nike

我已经尝试过:

ALTER TABLE MY_TABLE 
ADD STAGE INT NOT NULL;

但它给出了这个错误消息:

ALTER TABLE only allows columns to be added that can contain nulls or have a DEFAULT definition specified

最佳答案

作为一个选项,您可以首先创建可为 Null 的列,然后使用有效的非空值更新表列,最后使用 ALTER 列来设置 NOT NULL 约束:

ALTER TABLE MY_TABLE ADD STAGE INT NULL
GO
UPDATE MY_TABLE SET <a valid not null values for your column>
GO
ALTER TABLE MY_TABLE ALTER COLUMN STAGE INT NOT NULL
GO

另一个选项是为您的列指定正确的默认值:

ALTER TABLE MY_TABLE ADD STAGE INT NOT NULL DEFAULT '0'
<小时/>

UPD:请注意,上面的答案包含 GO,当您在 Microsoft SQL Server 上运行此代码时,这是必须的。如果你想在Oracle或MySQL上执行相同的操作,你需要使用分号;,如下所示:

ALTER TABLE MY_TABLE ADD STAGE INT NULL;
UPDATE MY_TABLE SET <a valid not null values for your column>;
ALTER TABLE MY_TABLE ALTER COLUMN STAGE INT NOT NULL;

关于sql-server - 将 NOT NULL 列插入现有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3492947/

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