我正在使用MySQL Workbench,使用其工具创建我的数据库。在尝试转发数据库工程时,我不断收到此错误。
Executing SQL script in server
ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-01-01,
`PlateNum` CHAR(7) NOT NULL DEFAULT 'ABCDEFG',
`CellPhone` INT(10) U' at line 9
SQL Code:
-- -----------------------------------------------------
-- Table `MetalDelivery`.`Drivers`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MetalDelivery`.`Drivers` (
`DriverID` INT NOT NULL AUTO_INCREMENT,
`FName` CHAR(12) NOT NULL DEFAULT 'First',
`LName` CHAR(12) NOT NULL DEFAULT 'Last',
`Sex` CHAR(1) NOT NULL DEFAULT 'M',
`DOB` DATE NOT NULL DEFAULT 1900-01-01,
`PlateNum` CHAR(7) NOT NULL DEFAULT 'ABCDEFG',
`CellPhone` INT(10) UNSIGNED NOT NULL DEFAULT 5550000000,
PRIMARY KEY (`DriverID`))
ENGINE = InnoDB
SQL script execution finished: statements: 6 succeeded, 1 failed
在SQL脚本预览中,它确实在InnoDB之后显示分号
答案 0 :(得分:0)
任何类型的日期都需要指定为字符串:
`DOB` DATE NOT NULL DEFAULT '1900-01-01'
还值得扩展这个架构。名称通常超过12个字母。 VARCHAR(255)
是"字符串"的良好默认值。字段。
您可能会发现这些默认值是一个很大的错误。可能有人的实际姓氏是"最后"在这种情况下,他们使用默认设置,或者他们根本没有姓氏。 NULL
值有用,所以请接受它们。