一位選秀節目create table命令顯示以下內容:如何從MySQL的列中刪除'NOT NULL'?
'columnA' varchar(6) NOT NULL DEFAULT '';
,以便不爲空被刪除如何修改列? 我需要它是:
'columnA' varchar(6) DEFAULT NULL;
我想下面的工作,但它沒有任何效果:
ALTER TABLE tbl_name MODIFY columnA varchar(6) DEFAULT NULL;
一位選秀節目create table命令顯示以下內容:如何從MySQL的列中刪除'NOT NULL'?
'columnA' varchar(6) NOT NULL DEFAULT '';
,以便不爲空被刪除如何修改列? 我需要它是:
'columnA' varchar(6) DEFAULT NULL;
我想下面的工作,但它沒有任何效果:
ALTER TABLE tbl_name MODIFY columnA varchar(6) DEFAULT NULL;
試試這個:
ALTER TABLE tbl_name MODIFY columnA varchar(6) NULL DEFAULT NULL;
進行更改(本地)在phpMyAdmin中。它將顯示它用於更改的查詢。在生產中執行此查詢,您就完成了。
您可以在任何GUI工具中使用此策略來查看它執行的查詢。我個人使用Sequel Pro (for Mac OS X)而不是phpMyAdmin。
這個問題沒有包含任何與phpMyAdmin相關的上下文。 – Knubo 2012-04-04 05:03:16
@Knubo是的,但我的「答案」包含一個策略,使用GUI生成ALTER TABLE語句。 – 2012-04-04 10:49:19
通常情況下,Eric的回答應該工作:
ALTER TABLE tbl_name MODIFY columnA varchar(6) NULL DEFAULT NULL;
(雖然 'NULL DEFAULT NULL' 部分是可選的)。
但是和你一樣,我遇到了一個沒有做任何事就返回OK的情況。在我看來,這似乎是由於我的鑰匙是主鑰匙的一部分。所以我必須做到以下幾點:
ALTER TABLE tbl_name DROP PRIMARY KEY;
ALTER TABLE tbl_name MODIFY columnA varchar(6);
ALTER TABLE tbl_name ADD PRIMARY KEY (columnA);
與最後一個查詢指定任何您的主鍵實際上是。
此外,如果有人認爲,過於冗長,以下綜合查詢不起作用,即使它應該是相同的:
ALTER TABLE tbl_name DROP PRIMARY KEY, MODIFY columnA varchar(6), ADD PRIMARY KEY (columnA);
我認爲MySQL的重寫,去年查詢到一個不同的順序,以便在執行修改時主鍵仍然存在,因此需要將其分解爲三個語句。
僅供參考,這是在MySQL 5.1.47,但我還沒有找到任何文件指出爲什麼發生這種情況,所以我不知道哪些版本受到影響。
沒有什麼區別。 – Will 2010-06-08 20:16:10
@Will:5.1.35對我有用 - 你得到什麼錯誤? – 2010-06-08 20:34:34
沒有錯誤。查詢OK,0行受到影響。 0條記錄,0條重複記錄,0條警告。 – Will 2010-06-09 12:20:51