2012-12-26 98 views
1

这是我的项目所需要的,但我只需要知道如何在sql中设置一个非空列的外键,并将其设置为空列而不会丢失任何内容。我有一个大数据集在这里引用,但是,今后,我不希望fk作为强制性列。将外键更改为null不为空

+1

您使用的数据库是?当然,你有什么想法? – Oded

+0

简单使用 ALTER TABLE表名 ALTER COLUMN列名数据类型 不提外键约束如下 ALTER TABLE表名 ALTER COLUMN列名的数据类型的外键引用ref_table(ref_table_col) –

回答

5

假设的MySQL这里和INT列命名为col,你可以这样做,像这样:

ALTER TABLE mytable MODIFY col INT NULL 

ETA:对于SQL Server,应该是这样的:

ALTER TABLE mytable ALTER COLUMN col INT NULL 
+0

我说我是使用SQL等作为SSMS。确切地说SQL Server 2008 R2。对我来说,这说附近修改不正确的语法 – joncodo

+0

@JonathanO - 谢谢,刚刚更新了我对SQL服务器的回答。 –

0

简单使用

Alter Table table_name Alter Column column_name datatype 

不提外键约束如下

Alter Table table_name Alter Column column_name datatype foreign key references ref_table(ref_table_col)