我想为设置了此属性的列修改“ not null”属性。
是否可以获取列名,然后运行“ ALTER TABLE ...”修改为“ null”,以便列的值是可选的?
答案 0 :(得分:0)
您可以从INFORMATION_SCHEMA.COLUMNS获取表列信息。
select TABLE_NAME, COLUMN_NAME
from information_schema.COLUMNS
where TABLE_SCHEMA='yourdb' and is_nullable='NO'
答案 1 :(得分:0)
您可以从information_schema.columns中识别所有要更改的列及其属性。所以
select concat(
'Alter table ',
table_name,
' modify column ',
column_name,' ',
column_type,
';'
)
from information_schema.`COLUMNS` where table_schema = 'sandbox' and is_nullable = 'no'
将生成一堆alter语句。
您应该将沙箱更改为您感兴趣的架构。
注意,我尚未对此进行全面测试,请注意
答案 2 :(得分:-1)
您无法更改constraint
,但可以删除然后重新创建。
按照以下步骤操作,您的问题将得到解决;
首先,取消约束:
ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1;
然后,重新创建它:
ALTER TABLE your_table
add CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode)
ON DELETE CASCADE;
参考: