error 1089-MySQL中在创建表的时候创建组合索引,为什么我加了索引长度后就提示错误呢?

问题描述

MySQL中在创建表的时候创建组合索引,为什么我加了索引长度后就提示错误呢?

这是在创建表的同时创建了组合索引,并且添加了索引长度100,然后提示
ERROR 1089 (HY000): Incorrect prefix key; the used key part isn't a string, the
used length is longer than the key part, or the storage engine doesn't support u
nique prefix keys。
然后我重新创建数据表,同时将索引长度100去掉,结果便可以了,如图:

解决方案

你的age不是int的么 又不是字符串。。。

解决方案二:

age 的数据类型,是不是与长度 100 不匹配?按错误的意思来说,是这个。
但具体的情况,需要根据实现字段类型来判断。

解决方案三:

INT最多应该 是11位吧,试试把100改成11.如果不行。那就是不能这样写了,反正笔者的参与的项目还没见过这样写的

时间: 2024-09-09 23:47:10

error 1089-MySQL中在创建表的时候创建组合索引,为什么我加了索引长度后就提示错误呢?的相关文章

mysql中alter数据表中增加、删除字段与表名修改例子

 alter是非常强大的一个功能我们可以利用alter来修改数据表表名字体名及一些其它的操作了,下面一起来看看mysql中alter数据表中增加.删除字段与表名修改的一个例子.     修改删除mysql数据库中的数据内容: [root@hk ~]# /usr/local/mysql/bin/mysql -uroot -p'admin' #进入mysql mysql> create database gbk default character set gbk collate gbk_chines

数据库-Mysql创建表的时候创建不了外键

问题描述 Mysql创建表的时候创建不了外键 create table orderdetail ( id int UNSIGNED AUTO_INCREMENT PRIMARY KEY, oid varchar(20) , fname varchar(20) , fprice decimal(5,2), num SMALLINT UNSIGNED not null, subtotals decimal(5,2) not null, CONSTRAINT fk_orderdetail_oid FO

如何得到一个dataset中某一个表的字段的名称和该数据的数据类型的长度

问题描述 如何得到一个dataset中某一个表的字段的名称和该数据的数据类型的长度(因为sizeof())不能用) 解决方案 解决方案二:这个简单啊,网上搜一下就得到答案了.

mysql 中存在null和空时创建唯一索引的方法_Mysql

好多情况下数据库默认值都有null,但是经过程序处理很多时候会出现,数据库值为空而不是null的情况.此时创建唯一索引时要注意了,此时数据库会把空作为多个重复值,而创建索引失败,示例如下: 步骤1: mysql> select phone ,count(1) from User group by phone; +-----------------+----------+ | phone | count(1) | +-----------------+----------+ | NULL | 70

MySQL中删除大表的性能问题

微博上讨论MySQL在删除大表engine=innodb(30G+)时,如何减少MySQL hang的时间,现做一下简单总结:(微博地址:http://weibo.com/1642466057/yuPz2guYJ) 当buffer_pool很大的时候(30G+),由于删除表时,会遍历整个buffer pool来清理数据,会导致MySQL hang住,解决的办法是: 1.当innodb_file_per_table=0的时候,以上不是问题,因为采用共享表空间的时候,该表所占用的空间不会被删除,bu

MySQL中复制数据表中的数据到新表中的操作教程_Mysql

MySQL是不支持SELECT - INTO语法的,使用INSERT INTO - SELECT替代相同用法,下面我们我们这里简答分一下新表存在和不存在两种情况,具体使用不同的语句.1.新表不存在复制表结构即数据到新表 create table new_table select * from old_talbe; 这种方法会将old_table中所有的内容都拷贝过来,用这种方法需要注意,new_table中没有了old_table中的primary key,Extra,auto_incremen

Oracle创建表空间、创建用户以及授权、查看权限

  创建临时表空间创建临时表空间 CREATE TEMPORARY TABLESPACE test_temp TEMPFILE 'C:oracleproduct10.1.0oradataorcltest_temp01.dbf' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL; 创建表空间 CREATE TABLESPACE HISTDB datafile 'D:oracleproduct10.2.0ora

MySql中把一个表的数据插入到另一个表中的实现代码_Mysql

小编今天在写一个 将一个数据库的表数据 导入到 另一个数据库的表的时候 我是这么写的 复制代码 代码如下: <?php header("Content-type:text/html;charset=utf-8"); $conn = mysql_connect("localhost","root","");mysql_select_db('nnd',$conn);mysql_select_db('ahjk',$conn);

mysql中alter数据表中增加、删除字段与表名修改例子.

修改删除mysql数据库中的数据内容: [root@hk ~]# /usr/local/mysql/bin/mysql -uroot -p'admin' #进入mysql mysql> create database gbk default character set gbk collate gbk_chinese_ci; #建立一个名字叫做gbk的数据库 mysql> use gbk mysql> show databases; +--------------------+ | Dat