标签: mysql-error-1075

删除MySQL中的主键

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

mysql> describe user_customer_permission;
+------------------+---------+------+-----+---------+----------------+
| Field            | Type    | Null | Key | Default | Extra          |
+------------------+---------+------+-----+---------+----------------+
| id               | int(11) | NO   | PRI | NULL    | auto_increment |
| user_customer_id | int(11) | NO   | PRI | NULL    |                |
| permission_id    | int(11) | NO   | PRI | NULL    |                |
+------------------+---------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

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

当我运行命令时:

alter table user_customer_permission drop primary key;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ERROR 1075 (42000): Incorrect table definition; there can …
Run Code Online (Sandbox Code Playgroud)

mysql sql database-design primary-key mysql-error-1075

171
推荐指数
7
解决办法
37万
查看次数

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

我正在将我的mysql db表从id(auto)更改为uid.

ALTER TABLE companies DROP PRIMARY KEY;
ALTER TABLE companies ADD PRIMARY KEY (`uuid`);
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误..

[SQL] ALTER TABLE companies DROP PRIMARY KEY;
[Err] 1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Run Code Online (Sandbox Code Playgroud)

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

ALTER TABLE companies change id id ?????????? int(11)
Run Code Online (Sandbox Code Playgroud)

mysql sql mysql-error-1075

27
推荐指数
3
解决办法
4万
查看次数

MySQL:#1075 - 表定义不正确; 自动增量与另一个关键?

这是MySQL 5.3.X + db中的一个表:

CREATE TABLE members` (
  `id` int(11)  UNSIGNED NOT NULL AUTO_INCREMENT,
  `memberid` VARCHAR( 30 ) NOT NULL ,
  `Time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
  `firstname` VARCHAR( 50 ) NULL ,
  `lastname` VARCHAR( 50 ) NULL ,
  UNIQUE (memberid),
  PRIMARY KEY (id) 
) ENGINE = MYISAM;
Run Code Online (Sandbox Code Playgroud)

Id列从不在查询中使用,它只是为了方便视觉(因此很容易看到表的增长方式).Memberid是一个实际的键,是唯一的,并且在查询中使用memberid来标识任何成员(WHERE memberid ='abcde').

我的问题是:如何保持auto_increment,但将memberid作为主键?那可能吗?当我尝试使用PRIMARY KEY(memberid)创建此表时,出现错误:

1075 - 表定义不正确; 只能有一个自动列,必须将其定义为键

什么是最佳选择(希望有一种方法可以保持id列,以便性能良好,查询通过memberid识别任何用户,而不是id),如果性能非常重要(尽管磁盘空间不是)?

mysql primary-key auto-increment mysql-error-1075

27
推荐指数
2
解决办法
13万
查看次数

Mysql错误:#1075

SQL查询:

ALTER TABLE  `blog` CHANGE  `id`  `id` BIGINT NOT NULL AUTO_INCREMENT
Run Code Online (Sandbox Code Playgroud)

MySQL说:

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key 
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个博客,我完成了代码.现在,我需要id自动增加,但是我得到了这个错误.我为什么要这个?

mysql sql mysql-error-1075

7
推荐指数
2
解决办法
3万
查看次数

这个mysql查询有什么问题?

这有效:

CREATE TABLE shoutbox_shout (
  shout_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  user_id INT UNSIGNED NOT NULL DEFAULT 0,
  shout_date INT UNSIGNED NOT NULL DEFAULT 0,
  message MEDIUMTEXT NOT NULL,
  KEY shout_date (shout_date)
)
Run Code Online (Sandbox Code Playgroud)

......而这个:

CREATE TABLE shoutbox_shout (
  shout_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  user_id INT UNSIGNED NOT NULL DEFAULT 0,
  shout_date INT UNSIGNED NOT NULL DEFAULT 0,
  message MEDIUMTEXT NOT NULL,
  KEY shout_date (shout_date)
)
Run Code Online (Sandbox Code Playgroud)

...结果是:

错误代码:1075 - 表定义不正确; 只能有一个自动列,必须将其定义为键

我添加了主键但仍然出错.

mysql sql mysql-error-1075

4
推荐指数
1
解决办法
8807
查看次数

是否可以使用允许重复的AUTO_INCREMENT列?

我有一个有一个AUTO_INCREMENT字段的表.目前,它也是一个主要的关键.

但是,在某些情况下我需要此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字段与另一个键分组,如此处所述.让我们假设为了论证,由于数据库中的其他约束,此解决方案将无法工作.

mysql sql auto-increment mysql-error-1075

2
推荐指数
1
解决办法
1392
查看次数

自动增量列

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

create table comments
(
     name varchar(20),
     mail varchar(30),
     comment varchar(100),
     com_no int auto_increment
);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

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

然后我把它作为主键:

create table comments
(
    name varchar(20),
    mail varchar(30),
    comment varchar(100),
    com_no int primary_key auto_increment
);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

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

怎么了???

mysql sql mysql-error-1075

1
推荐指数
1
解决办法
2572
查看次数

将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配置:

<bean id="mySqlDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/mydb"/>
    <property name="username" value="mydb"/>
    <property name="password" value="Fallout_3"/>
</bean>

<bean id="mySqlSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="mySqlDataSource"/>

    <property name="mappingResources">
        <list>
            <value>entities/ClientPrices.hbm.xml</value>
            <value>entities/User.hbm.xml</value>
            <value>entities/Provider.hbm.xml</value>
            <value>entities/MessageQueue.hbm.xml</value>
            <value> hibernate/SimpleEntity.hbm.xml</value>
        </list> …
Run Code Online (Sandbox Code Playgroud)

java mysql spring hibernate mysql-error-1075

0
推荐指数
1
解决办法
1186
查看次数