我正在使用heidiSQL创建一个表。在该表中,我有两列需要AutoIncrement和当前DateTime。当我为这两列选择默认值autoIncrement和现在。我犯了个错误。下面是错误的屏幕截图:

下面是我现在所做的工作和autoIncrement的屏幕截图:

这是HeidiSQL生成的查询:
CREATE TABLE `personalidentity` (
`VitalID` INT(10,0) NULL AUTO_INCREMENT,
`FirstName` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`MiddleName` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`LastName` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`Address` VARCHAR(200) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`City` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`State` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`Zip` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`UpdatedOn` DATETIME NOT NULL DEFAULT 'Now()',
`StatusCode` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci'
)
COLLATE='utf8mb4_0900_ai_ci'
ENGINE=InnoDB
;我对mysql非常陌生。任何解决错误的帮助都将受到高度赞赏。
发布于 2020-05-23 19:59:53
在mysql 8中,整数没有第二个数字来表示大小,您可以跳过所有这些,然后编写整数。
VitalID必须是主键或至少键而不是NULL。
‘'NOW()’是一个字符串,可以作为缺省值使用--去掉滴答
不要紧,Integer的尺码总是一样的
CREATE TABLE `personalidentity` (
`VitalID` INT(10) PRIMARY KEY NOT NULL AUTO_INCREMENT,
`FirstName` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`MiddleName` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`LastName` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`Address` VARCHAR(200) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`City` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`State` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`Zip` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`UpdatedOn` DATETIME NOT NULL DEFAULT Now(),
`StatusCode` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci'
)
COLLATE='utf8mb4_0900_ai_ci'
ENGINE=InnoDB
;发布于 2020-05-23 20:05:04
你还有两个错误我解决了..。
1.没有主键
2.Collation
3.默认Now()值。
CREATE TABLE `personalidentity` (
`VitalID` INT(10) primary key auto_increment ,
`FirstName` VARCHAR(50) NULL DEFAULT NULL COLLATE utf8mb4_general_ci ,
`MiddleName` VARCHAR(50) NULL DEFAULT NULL COLLATE utf8mb4_general_ci ,
`LastName` VARCHAR(50) NULL DEFAULT NULL COLLATE utf8mb4_general_ci ,
`Address` VARCHAR(200) NULL DEFAULT NULL COLLATE utf8mb4_general_ci ,
`City` VARCHAR(50) NULL DEFAULT NULL COLLATE utf8mb4_general_ci ,
`State` VARCHAR(50) NULL DEFAULT NULL COLLATE utf8mb4_general_ci ,
`Zip` VARCHAR(50) NULL DEFAULT NULL COLLATE utf8mb4_general_ci ,
`UpdatedOn` DATETIME NOT NULL DEFAULT now(),
`StatusCode` VARCHAR(10) NULL DEFAULT NULL COLLATE utf8mb4_general_ci
)
COLLATE=utf8mb4_general_ci
ENGINE=InnoDB
;https://stackoverflow.com/questions/61977810
复制相似问题