2013-11-24 148 views
4

我在我的表中有4個整數列。他們不需要填寫。所以有些可能會被填補,有些則不會。當它們未被填充時,mysql將0添加到該列。我試圖將列的默認值更改爲NULL,它告訴無效的默認值。有沒有辦法讓空行沒有零點?Mysql整數默認值0

+0

請出示'CREATE語句TABLE'爲您表格以及如何插入新行。 – peterm

+0

你確定該字段可以爲空嗎? – BeemerGuy

+0

可能的重複[如何修改MySQL列以允許NULL?](http://stackoverflow.com/questions/212939/how-do-i-modify-a-mysql-column-to-allow-null) – vascowhite

回答

0

在這種情況下,您需要將您的數據類型更改爲varchar並添加默認值NULL。

ALTER TABLE <table_name> ALTER COLUMN <column_name1> <datatype1> <constraint1>

+0

只要數據類型是非數字的,任何形式的String都可以。 – Leo

1

如果列NULL'able那麼它應該只是罰款

 
mysql> CREATE TABLE Table1 
    -> (id int not null auto_increment primary key, 
    -> `col1` int, `col2` int, `col3` int, `col4` int); 
Query OK, 0 rows affected (0.03 sec) 

mysql> 
mysql> INSERT INTO Table1 (`col1`, `col2`, `col3`, `col4`) 
    -> VALUES (1, 1, 1, 1); 
Query OK, 1 row affected (0.03 sec) 

mysql> 
mysql> INSERT INTO Table1() VALUES(); 
Query OK, 1 row affected (0.00 sec) 

mysql> SELECT * FROM table1; 
+----+------+------+------+------+ 
| id | col1 | col2 | col3 | col4 | 
+----+------+------+------+------+ 
| 1 | 1 | 1 | 1 | 1 | 
| 2 | NULL | NULL | NULL | NULL | 
+----+------+------+------+------+ 
2 rows in set (0.00 sec) 
4

「有沒有什麼辦法讓空行,而不存在零?」

爲了有NULL列默認使用以下語法在創建表:

`column` int(10) unsigned DEFAULT NULL, 

要改變現有列:

ALTER TABLE table_name CHANGE COLUMN `column_name` `column_name` int(10) unsigned DEFAULT NULL;