我正在使用NodeJS为一个项目做后端工作。管理我正在使用的数据库
typeorm
.
我已经创建了几个没有问题的表。
现在我正试图创建一个新的表(或实体),该表有一个日期列,该列使用decorator
@CreateDateColumn()
它应该在添加新行时插入当前日期,如下所示:
@Entity()
export class Order{
@PrimaryGeneratedColumn()
id: number
@Column()
first_name: string
@Column()
last_name: string
@Column()
email: string
@CreateDateColumn() //This one here
created_at: string
@OneToMany(() => OrderItem, orderItem => orderItem.order)
order_items: OrderItem[]
}
事实上,我将类型设置为
string
不是问题所在,正如我所努力做到的那样
Date
具有相同的结果。
当我保存文件和
打字
尝试创建表,这是我得到的结果:
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlState: '42000',
sqlMessage: "You have an error in your SQL syntax near '(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), PRIMARY KEY (`id`)) ENGINE=InnoDB' at line 1",
sql: 'CREATE TABLE `order` (`id` int NOT NULL AUTO_INCREMENT, `first_name` varchar(255) NOT NULL, `last_name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), PRIMARY KEY (`id`)) ENGINE=InnoDB'
当我注释掉decorator时,问题就消失了,所以肯定是SQL部分。
在谷歌上搜索后,有人提到SQL版本可能是个问题。我使用的数据库的SQL版本是
Server version: 5.5.62-0ubuntu0.14.04.1
有什么想法吗?