在表格中插入自动增量和当前日期时间

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

enter image description here

以下是我现在要进行的操作和autoIncrement的屏幕截图:

enter image description here

这是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很新。解决错误的任何帮助将不胜感激。

评论
  • lquia
    lquia 回复

    整数没有第二个数字来表示大小 在mysql 8中,您可以一起跳过所有内容并编写INTEGER。

    VitalID必须为PRIMARY KEY或至少为KEY且不能为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
    ;
    
  • cnisi
    cnisi 回复

    而且您还有另外两个我解决的错误。

    1.没有主键

    2.整理

    3.Default 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
    ;