问题标签 [mysql-error-1075]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1454 浏览

mysql - 是否可以有一个允许重复的 AUTO_INCREMENT 列?

我有一个有AUTO_INCREMENT字段的表。目前,它也是一个 PRIMARY KEY。

但是,在某些情况下,我需要此AUTO_INCREMENT列来允许重复。换句话说 - 两个不同的行可以在AUTO_INCREMENT列内具有相同的值。这意味着有一个不是 PRIMARY KEY 的 AUTO_INCREMENT 字段。

这可能吗?

我猜不是,因为每当我尝试这样做时,都会收到此错误:

ERROR 1075 (42000) at line 130: Incorrect table definition; there can be only one auto column and it must be defined as a key

我喜欢使用 AUTO_INCREMENT 字段,因为它使我不必手动存储/递增数据库中其他地方的单独计数器。我可以插入表格并获取插入的值。但是,如果我不能有重复项,我似乎将无法使用单独的表来跟踪和手动增加该字段。

更新:作为一个快速澄清,我已经熟悉将 AUTO_INCREMENT 字段与另一个键分组,如此处所述。让我们假设这个解决方案由于数据库中的其他约束而无法工作。

0 投票
3 回答
3036 浏览

mysql - mysql(innodb)外键约束问题

我在尝试为 MySql(Innodb)中的表生成外键时遇到了几个问题。你能帮帮我吗?

参考表:

我需要表 C 中的 2 个外键,因为在删除相应实体或相应用户时必须删除 C 中的条目。

当我尝试创建表 CI 时遇到错误:ERROR 1005: Can't create table (errno: 150)。我怀疑这是因为我没有遵守 mysql 规范中规定的规则。 http://dev.mysql.com/doc/refman/5.4/en/innodb-foreign-key-constraints.html

规范的以下部分/规则是什么意思?

“InnoDB 需要在外键和引用键上建立索引,以便外键检查可以快速且不需要表扫描。在引用表中,必须有一个索引,其中外键列按相同顺序列为第一列。”

是不是说C表的外键需要和实体表和用户表的主键对应,这样实体表的ENTITYID必须在主键的第一位,而用户表的NAME必须在主键的第一位。换句话说,我的主键声明应该重写如下吗?

如果是这样,当我尝试重新排序上述键声明时,我遇到错误 1075。“表定义不正确,只能有一个自动列,并且必须将其定义为键。”

如何使自动递增键(代理键)在索引顺序列表中排在第二位,以便我符合规范?

谢谢 !

0 投票
12 回答
457976 浏览

mysql - 删除 MySQL 中的主键

我有以下表模式,它将 user_customers 映射到实时 MySQL 数据库的权限:

我想删除 user_customer_id 和 permission_id 的主键并保留 id 的主键。

当我运行命令时:

我收到以下错误:

如何删除列的主键?

0 投票
4 回答
55720 浏览

mysql - mysql,alter column删除主键和自动增量

我正在将我的 mysql 数据库表从 id(自动)更改为 uid。

这是我得到的错误..

据我所知,我需要将 id 更改为非自动增量,因为我将其作为主键删除。?更改列以删除主键并自动递增的语法是什么?

0 投票
6 回答
3501 浏览

mysql - 自动增量列

我想在数据库表中创建一个 AUTO_INCREMENT 列,这是我编写的语法:

我收到以下错误:

ERROR 1075 (42000):表定义不正确;只能有一个自动列,并且必须将其定义为键

然后我把它作为主键:

我收到以下错误:

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'primary_key auto_increment,name varchar(20),mail varchar(30),comment varchar(100' 附近使用正确的语法

怎么了???

0 投票
2 回答
374 浏览

mysql - 如何在mysql中设计一个带有两个auto_increment字段的表

对于一个项目,我们目前进行数据库设计。我们认为我们应该在一张表中使用两个 auto_increment 字段。

表主:

要从备用的 auto_incremet 开始,您可以使用ALTER TABLE tbl AUTO_INCREMENT = 100000;这仅适用于整个表 'tbl'。pid 的 auto_increment 应为 50000000,iid 的 auto_increment 应为 80000000

我们希望避免将其拆分为 3 个关系为 master -> table.pid 和 master -> table.iid 的表。

改变桌子不起作用的原因 /* SQL Error (1075): Incorrect table definition; there can be only one auto column and it must be defined as a key */

有可能还是您推荐什么替代方案?

0 投票
1 回答
1194 浏览

java - 将 Java(Spring、Hibernate、MySql)项目从 Windows 迁移到 Debian

我正在 Windows (IntelliJIdea) 上编写项目,一切正常。它编译并运行。但是当我尝试在 Debian(GNU/Linux 5.0) 上运行时,我有

SEVERE: Access denied for user 'root'@'localhost' (using password: YES)
[java] 30.11.2010 15:39:04 org.hibernate.cfg.SettingsFactory buildSettings
[java] WARNING: Could not obtain connection to query metadata
[java] java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
[java] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
[java] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)
[java] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
[java] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)

我使用这样的 Spring 配置:

0 投票
3 回答
1337 浏览

java - 在 Debian(MySQL)上午餐 Java 应用程序(Spring,Hibernate)的问题

</bean id="mySqlDataSource" > class="org.springframework.jdbc.datasource.DriverManagerDataSource">

在我的 Spring 配置之上,为什么我的应用程序抛出:

以及 Windows 上的任何问题(!!!

0 投票
2 回答
914 浏览

mysql - 将 MySQL 字段 uid 设置为 auto_increment

出于某种原因,当我尝试将我的 uid 设置为 auto_increment 时,我不断收到以下错误。我正在使用 phpMyAdmin。

我的数据库中还有其他一些表,它们最初的索引为 auto_increment,但我将所有这些列都更改为 uid varchar。但是现在我要添加一个名为 ITEMS 的表,并且我希望 uid 成为我可以用作所有其他表的参考点的“主”键。

0 投票
5 回答
6750 浏览

mysql - 自动增量 ID 和关键问题 (MySQL)

我有桌子,我试图添加

餐桌,但我得到

所以问题是:

  1. 我怎样才能找到哪一个是关键列
  2. 我可以毫无问题地更改它并添加新的 ID 字段(使用自动增量)吗?