2012-02-26 52 views
1

爲什麼我得到一個錯誤信息,當我導入SQL創建MySQL工作臺?MySQL的工作臺到phpMyAdmin:0000-00-00 00:00:00 - 無效的默認值

SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0; 

SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; 

SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL'; 





-- ----------------------------------------------------- 

-- Table `$type` 

-- ----------------------------------------------------- 

CREATE TABLE IF NOT EXISTS `type` (

    `type_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT , 

    `name` VARCHAR(255) NULL DEFAULT NULL , 

    `created_on` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' , 

    `updated_on` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , 

    PRIMARY KEY (`type_id`)) 

ENGINE = MyISAM 

AUTO_INCREMENT = 1 

DEFAULT CHARACTER SET = utf8; 



SET [email protected]_SQL_MODE; 

SET [email protected]_FOREIGN_KEY_CHECKS; 

SET [email protected]_UNIQUE_CHECKS; 

錯誤信息,

#1067 - Invalid default value for 'created_on' 

有什麼不對這個值 - 0000-00-00 00:00:00

+1

嘗試從'timestamp'改變它'datetime'。 – 2012-02-26 18:38:41

+0

嘗試過,但同樣的問題... :-( – laukok 2012-02-26 18:42:05

+0

可以在phpmyadmin的一個問題本身? – laukok 2012-02-26 18:42:39

回答

1

使用DATETIME,而不是TIMESTAMP

+0

得到它 - 它現在與''created_on' DATETIME NOT NULL,' – laukok 2012-02-26 19:04:32

+0

林不太清楚如何時間戳是工作在MySQL,但是我也有這個問題,所有的時間,所以我用一個時間戳默認CURRENT_TIMESTAMP字段和其他日期時間與0000-00-00 00:00:00。答案應該somwere在這裏http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html但我太懶找到它:p – wormhit 2012-02-26 19:08:15

+0

請通過@saaj查看下面的答案。 – iajrz 2015-05-14 02:31:56

11

不久,由wormhit答案是錯的。注意第三行:

SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL';

TRADITIONAL根據manual是這樣的,通過指定你居然禁止零個日期的模式擴展到

STRICT_TRANS_TABLES, STRICT_ALL_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER

的快捷方式。在MySQL工作臺6首選項 - >型號:MySQL並從刪除TRADITIONAL SQL_MODE用於生成的腳本

還要注意,TIMESTAMP是時區感知型,而DATETIME不是。因此,根據機器的時區設置,MySQL的全局和會話設置結果集可能會有所不同。

+0

如果我是你,我會刪除對其他用戶答案的​​引用。 – iajrz 2015-05-14 02:33:28

0

如果這裏提到的其他方法不起作用,你可以試試這個:
修改my.ini的mysql路徑。

sql-mode="STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"

+0

如果沒有定義sql模式,我認爲saaj的答案可以工作 – user7130865 2016-11-08 09:53:22