如何修改表添加具有命名默认约束和命名外键约束的列?

Ste*_*eve 58 sql-server

我有两个现有的表(TableA和TableB),我需要向TableA添加一个新列,该列具有TableB的外键并且具有非null的默认值...并且这两个约束都需要命名.我怎样才能做到这一点?

Ste*_*eve 107

在一个语句中添加两个约束并不像我想象的那么容易,并且似乎没有很多例子(至少我没有找到任何容易的),所以我想我会分享我在这里做了什么,也许有人可以提出更好的方法?

ALTER TABLE [table name] ADD
    [New Column Name] [Column Type] 
    CONSTRAINT [constraint name] DEFAULT ([default value]) NOT NULL,
    CONSTRAINT [constraint name] FOREIGN KEY ([New Column Name]) 
    REFERENCES [Other Table] ([Foreign ID])
Run Code Online (Sandbox Code Playgroud)

例:

ALTER TABLE tableA ADD
    myNewColumn BIGINT 
    CONSTRAINT myNamedConstraint_df default (1) NOT NULL,
    CONSTRAINT myNamedConstraint_fk FOREIGN KEY (myNewColumn)
    REFERENCES tableB (tableBPrimaryKeyID)
Run Code Online (Sandbox Code Playgroud)

  • 在MySQL中,我们需要在`CONSTRAINT`之前添加`ADD`前缀。`添加约束 myNamedConstraint_df 默认 (1) NOT NULL,` (2认同)