我想创建一个tb_order数据库表,但是我不知道哪种代码格式是错误的。
CREATE TABLE tb_order (
id INT(11) NOT NULL AUTO_INCREMENT,
user_id INT(11) DEFAULT NULL,
order_number VARCHAR(255) DEFAULT NULL,
CREATE DATETIME DEFAULT NULL,
updated DATETIME DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB AUTO_INCREMENT=2 DEFAULT
CHARSET=utf8;
显示错误消息
查询:CREATE TABLE tb_order(id int(11)NOT NULL AUTO_INCREMENT, user_id int(11)默认为空,order_number varchar(255)默认 NULL ...错误代码:1064您的SQL语法错误;校验 与您的MySQL服务器版本相对应的手册 在'create datetime DEFAULT NULL,更新的datetime附近使用的语法 第5行执行时间的默认值NULL,主键(id))': 00:00:00:000传输时间:00:00:00:000总时间: 00:00:00:000
答案 0 :(得分:6)
2018-01-01T00:00:00.0000000
是保留关键字。用反引号将其引用,或使用其他列名。
答案 1 :(得分:2)
您已使用MySQL关键字作为列名。 我已经在代码中提到了这一点。看看。
CREATE TABLE tb_order (
id INT(11) NOT NULL AUTO_INCREMENT,
user_id INT(11) DEFAULT NULL,
order_number VARCHAR(255) DEFAULT NULL,
some_other_coloumn_name DATETIME DEFAULT NULL,
updated DATETIME DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB AUTO_INCREMENT=2 DEFAULT
CHARSET=utf8;
答案 2 :(得分:1)
尝试-
请更改列名,将create replace更改为create_db,同时也更新为update_db
CREATE TABLE `tb_order` (
`id` int(11) NOT NULL,
`user_id` int(11) DEFAULT NULL,
`order_number` varchar(255) DEFAULT NULL,
`create_db` datetime(6) DEFAULT NULL,
`updated_db` datetime(6) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Indexes for dumped tables
--
--
-- Indexes for table `tb_order`
--
ALTER TABLE `tb_order`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `tb_order`
--
ALTER TABLE `tb_order`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;