mysql - 在 MySQL 数据库中创建表时出现语法错误

标签 mysql sql

当我尝试在 MySQL 数据库中创建表时遇到语法错误,它位于 MEDIUMBLOB 周围,任何人都可以帮助我吗?

CREATE TABLE  `ELO`.`images` (

 `image_id` VARCHAR( 50 ) NOT NULL ,
 `user_id` VARCHAR( 50 ) NOT NULL ,
 `image` MEDIUMBLOB(16777215) NOT NULL ,
 `longitude` VARCHAR( 15 ) NOT NULL ,
 `latitude` VARCHAR( 15 ) NOT NULL ,
 `city` VARCHAR( 50 ) NOT NULL ,
 `delete_at` DATETIME NOT NULL ,
 `description` VARCHAR( 250 ) NOT NULL ,
 `score` INT( 8 ) NOT NULL DEFAULT  '0',
 `categories` SET(  'nightlife',  'food',  'beach' ) NOT NULL DEFAULT  'nightlife',
PRIMARY KEY (  `image_id` ) ,
UNIQUE (
 `image`
)
) ENGINE = MYISAM

最佳答案

您无法设置 MEDIUMBLOB 的长度,该列应仅定义 image MEDIUMBLOB NOT NULL, 这意味着您无法将其也设置为 UNIQUE 因为它没有长度,所以你的 sql 应该如下所示

CREATE TABLE  `images` (
 `image_id` VARCHAR( 50 ) NOT NULL ,
 `user_id` VARCHAR( 50 ) NOT NULL ,
 `image` MEDIUMBLOB NOT NULL,
 `longitude` VARCHAR( 15 ) NOT NULL ,
 `latitude` VARCHAR( 15 ) NOT NULL ,
 `city` VARCHAR( 50 ) NOT NULL ,
 `delete_at` DATETIME NOT NULL ,
 `description` VARCHAR( 250 ) NOT NULL ,
 `score` INT( 8 ) NOT NULL DEFAULT  '0',
 `categories` SET(  'nightlife',  'food',  'beach' ) NOT NULL DEFAULT  'nightlife',
 PRIMARY KEY (  `image_id` ) 
) ENGINE = MYISAM

关于mysql - 在 MySQL 数据库中创建表时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35586268/

相关文章:

mysql - 如何在 1 Mysql 中进行求和、乘法和除法

php - 或者 INNER JOIN 中的条件

c# - SQL 标识增量和种子

mysql - 如何在执行 SQL 转储时替换某些列的值

PHP成员(member)资格时间和有效期

php - 如果一行中的 2 列与另一行匹配,则将其视为重复条目 MySQL

javascript - Sequelize.js,模型的最大 pubDate 返回旧条目而不是最新条目

MySQL类型转换同时忽略非数字字符

mysql - 更新没有任何键/索引信息的大型 MySQL 表

mysql - JOIN 查询太慢了。不会用INDEX?