mysql 修改表結構語法

2021-06-26 14:57:20 字數 1831 閱讀 9091

alter table 只允許新增可包含空值或指定了 default 定義的列。

如果:if exists(select 1 from sysobjects where name = n'tab_test') and not exists(select 1 from sysobjects a, syscolumns b where b.id = a.id and b.name = n'col_test' and a.name = n'tab_test')

alter table tab_test

add col_test smallint not null

go將會收到錯誤資訊。

要增加非空列怎麼辦呢?

第1種辦法:在add column時指定列有default

alter table tab_test

add col_test not null constraint dftab_test_col_test default 1

第2種辦法:先給表增加個table_constraint default,再alter column

alter table tab_test

add constraint dftab_test_col_test default 1 for col_testalter table tab_test

alter column col_test int not null

第3種辦法:只好先增加空列,在修改為非空啦:

if exists(select 1 from sysobjects where name = n'tab_test') and not exists(select 1 from sysobjects a, syscolumns b where b.id = a.id and b.name = n'col_test' and a.name = n'tab_test')

alter table tab_test

add col_test smallint

goalter table tab_test

alter column col_test smallint not null

go語法如下:

alter table table_name

alter column column_name

)][null|not null]

| add

[ ,...n ]

| drop

] }< column_definition > ::=

[ [ default constant_expression ]

| identity [ ( seed , increment ) ]

] [rowguidcol]

[ < column_constraint > ] [ ...n ] ]

< column_constraint > ::=

[ null | not null ]

[ constraint constraint_name ]

| references ref_table [ (ref_column) ]

[ on delete ]

[ on update ]

}< table_constraint > ::=

[ constraint constraint_name ]

| foreign key

( column [ ,...n ] )

references ref_table [ (ref_column [ ,...n ] ) ]

[ on delete ]

[ on update ]

}

mysql 修改表結構

1.mysql 修改表名字 alter table t1 rename t2 2.修改列的名字 alter table stock change column stock id id int 6 3.增加列 alter table ab add column id int 3 4.減少列 alter...

MySql表結構修改

1 在表的最後追加一列 語法 alter table 表名 add 列名 列型別 列引數 例如 alter table test add name char 30 not null default tom 2 在某列後面加一列 語法 alter table 表名 add 列名 列型別 列引數 aft...

Mysql表結構修改

修改場景 建立了乙個表但是忘記把主鍵設定為自增長 create table work info work id int 11 not null,company varchar 64 default null,position varchar 32 default null,duty varchar ...