在t_test表里添加名為t1,類型為VARCHAR(10)的列
ALTER TABLE t_test ADD COLUMN t1 VARCHAR(10);
如果列是整型可以VARCHAR(10)換成integer
ALTER TABLE t_test ADD COLUMN t2 integer;
如果加上非空約束或者默認(rèn)值
ALTER TABLE t_test ADD COLUMN t1 VARCHAR(10) not null;表示不能為空
ALTER TABLE t_test ADD COLUMN t1 VARCHAR(10) default '';表示默認(rèn)值為字符串
刪除t_test表里t1字段
ALTER TABLE t_test DROP COLUMN t1;
如果t1字段被另外的表外鍵引用,直接執(zhí)行刪除會(huì)報(bào)錯(cuò),需要使用cascade刪除外鍵的依賴
ALTER TABLE t_test DROP COLUMN t1 cascade;
ALTER TABLE t_test ADD CHECK (t2 > 0);表示t2得大于0
ALTER TABLE t_test ADD CONSTRAINT unique_test_key UNIQUE(t1);表示t1是唯一約束
ALTER TABLE t_test ALTER COLUMN t1 SET NOT NULL;表示給t1增加非空約束
注意在添加這些約束的時(shí)候,前提是這些表里已存在的數(shù)據(jù)也符合這些約束,否則會(huì)失敗
ALTER TABLE t_test DROP CONSTRAINT unique_test_key unique_test_key;表示刪除t_test里名為unique_test_key的唯一約束
刪除約束需要知道約束的名稱,所以可以使用\d的命令查看有約束的名稱,有點(diǎn)特殊的是非空的約束是沒(méi)有名稱的,但可以這樣執(zhí)行刪除
ALTER TABLE t_test ALTER COLUMN t1 DROP CONSTRAINT NOT NULL;
ALTER TABLE t_test ALTER COLUMN t2 SET DEFAUL 1;表示給t2列設(shè)置默認(rèn)值
ALTER TABLE t_test ALTER COLUMN t2 DROP DEFAUL;
ALTER TABLE t_test ALTER COLUMN t1 TYPE text;表示將t1的varchar類型轉(zhuǎn)換成text類型
值得注意的是只有字段里的每個(gè)項(xiàng)都能隱式的轉(zhuǎn)成新類型,這個(gè)操作才會(huì)成功
假如varchar(40)轉(zhuǎn)成varchcar(10),如果有數(shù)據(jù)是長(zhǎng)度是大于10的,那么轉(zhuǎn)換就會(huì)失敗
ALTER TABLE t_test RENAME COLUMN t2 TO t3;
ALTER TABLE t_test RENAME TO t_test1;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。