我的表結構insert not working on mysql 5.7.12-0?
CREATE TABLE IF NOT EXISTS `emp` (
`id` int(3) NOT NULL AUTO_INCREMENT,
`name` varchar(11) DEFAULT NULL,
`age` varchar(31) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
我的查詢是:
INSERT INTO `emp` (`id`, `name`) VALUES ('1', 'prashant');
這正與所有的MySQL版本低於5.7,但不能與MySQL版本工作5.7.12-0ubuntu1
獲取錯誤:
#1364 - Field 'age' doesn't have a default value
這個版本里有什麼新東西?
試試在5.7以下的mysql版本中,你會看到區別。
感謝:-)
'Age'被定義爲'NOT NULL',但你是不是在你的'INSERT'爲它指定的值。聲明。您可能需要1)爲其設置一個'DEFAULT'值,或者2)將其添加到INSERT語句中。除了缺少「age」值之外,您還試圖「插入」一個「id」值,該值被定義爲「AUTO_INCREMENT」。 (另外,與你的錯誤無關,但'age'被定義爲'VARCHAR(31)'只是很奇怪......) – Siyual
@Siyual它在5.7以下的所有mysql版本中工作,請在你的機器上嘗試一次:-) – unknownbits
我知道沒有任何版本的MySQL允許你在聲明爲NOT NULL的字段中插入NULL。 – Siyual