在 table 中插入自动增量和当前日期时间
inserting autoincrement and current date time in a table
我正在使用 heidiSQL 创建 table。我在 table 中有两列,我想要自动增量和当前日期时间。当我选择 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 很陌生。非常感谢任何解决错误的帮助。
整数没有第二个数字来表示大小
在 mysql 8 中,您可以一起跳过所有内容并写入 INTEGER。
VitalID 必须是 PRIMARY KEY 或至少是 KEY 且 NOT NULL
'NOW()' 是一个字符串,不能作为 DEFAULT 去掉刻度线
没关系整数总是相同的大小
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
;
我解决了另外两个错误..
1.No 主键
2.Collation
3.Default现在()值。
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
;
我正在使用 heidiSQL 创建 table。我在 table 中有两列,我想要自动增量和当前日期时间。当我选择 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 很陌生。非常感谢任何解决错误的帮助。
整数没有第二个数字来表示大小 在 mysql 8 中,您可以一起跳过所有内容并写入 INTEGER。
VitalID 必须是 PRIMARY KEY 或至少是 KEY 且 NOT NULL
'NOW()' 是一个字符串,不能作为 DEFAULT 去掉刻度线
没关系整数总是相同的大小
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
;
我解决了另外两个错误..
1.No 主键
2.Collation
3.Default现在()值。
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
;