I'm trying to create these table:
我正在尝试创建这些表:
CREATE TABLE IF NOT EXISTS `qa_discountcoupons` (
`discount_code` INT NOT NULL AUTO_INCREMENT ,
`status_code` INT NOT NULL ,
`discount_date` DATETIME NOT NULL DEFAULT 0 ,
PRIMARY KEY (`discount_code`) ,
INDEX `discounts_to_status` (`status_code` ASC) ,
CONSTRAINT `discounts_to_status`
FOREIGN KEY (`status_code` )
REFERENCES `qa_status` (`status_code` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
But i get this error:
但我得到这个错误:
Error Code: 1067. Invalid default value for 'discount_date'
1 个解决方案
#1
3
You can use:
您可以使用:
CREATE TABLE IF NOT EXISTS `qa_discountcoupons` (
`discount_code` INT NOT NULL AUTO_INCREMENT ,
`status_code` INT NOT NULL ,
`discount_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY (`discount_code`) ,
INDEX `discounts_to_status` (`status_code` ASC) ,
CONSTRAINT `discounts_to_status`
FOREIGN KEY (`status_code` )
REFERENCES `qa_status` (`status_code` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
from MySQL 5.6.5 and up.
从MySQL 5.6.5开始。
I suggest also checking out the thread on How do you set a default value for a MySQL Datetime column? - which has a lot of comments on this.
我建议还查看关于如何为MySQL Datetime列设置默认值的线程? - 对此有很多评论。
#1
3
You can use:
您可以使用:
CREATE TABLE IF NOT EXISTS `qa_discountcoupons` (
`discount_code` INT NOT NULL AUTO_INCREMENT ,
`status_code` INT NOT NULL ,
`discount_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY (`discount_code`) ,
INDEX `discounts_to_status` (`status_code` ASC) ,
CONSTRAINT `discounts_to_status`
FOREIGN KEY (`status_code` )
REFERENCES `qa_status` (`status_code` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
from MySQL 5.6.5 and up.
从MySQL 5.6.5开始。
I suggest also checking out the thread on How do you set a default value for a MySQL Datetime column? - which has a lot of comments on this.
我建议还查看关于如何为MySQL Datetime列设置默认值的线程? - 对此有很多评论。