mysql - 给出 AUTO_INCRMENT 值时只能出现一个自动列错误

标签 mysql sql

我在尝试创建表时使用 phpMyAdmin。

定义如下

  CREATE TABLE `koment` (
 `movieID` int(11) NOT NULL,
 `userID` int(11) NOT NULL,
 `id` int(11) NOT NULL,
 `text` varchar(255) DEFAULT NULL,
 PRIMARY KEY (`movieID`,`userID`,`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

我想将 id 作为自动增量变量,但似乎我无法做到这一点,即使它是主键(我需要 id 属性,因为用户可以写很多对同一部电影的评论)。所以我不明白为什么我仍然收到此错误。提前致谢。

最佳答案

我宁愿建议您拥有明确的PRIMARY KEY,即AUTO_INCRMENTUNIQUE KEY,如您的示例所示:

CREATE TABLE `koment` (
 `movieID` int(11) NOT NULL,
 `userID` int(11) NOT NULL,
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `text` varchar(255) DEFAULT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY (`movieID`,`userID`,`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

关于mysql - 给出 AUTO_INCRMENT 值时只能出现一个自动列错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48517943/

相关文章:

mysql - 关系数据库可以横向扩展吗

MySQL 条件子查询

php - 选择包含确切字符串的列

php - 从txt文件中获取原始数据并将其放入数据库的列中

mysql - UNION ALL 更多表和来自不同表的附加数据

mysql - Spring Boot连接Mysql和MongoDb

php - 无法使用 php 代码从数据库获取最大(数学)结果

mysql - 如何使用一个sql查询更新一列中的多个值?

mysql - 使用 MySQL 全文匹配两个字段以查找相关结果?

sql - 事务回滚在 Postgresql 中不起作用