MySQL是限制长度的, 因为你是设置的UTF-8编码,
articleID 长度是255*4 > 767 的
mysql官方好像有个说明, 如下
MySQL has a prefix limitation of 767 bytes in InnoDB, and 1000 bytes in MyISAM. This has never been a problem for me, until I started using UTF-16 as the character set for one of my databases. UTF-16 can use up to 4 bytes per character which means that in an InnoDB table, you can’t have any keys longer than 191 characters. Take this CREATE statement for example:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL,
`password` varchar(64) NOT NULL,
`email` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `UNIQ_8D93D649F85E0677` (`username`),
UNIQUE KEY `UNIQ_8D93D649E7927C74` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf16 AUTO_INCREMENT=1 ;
This will fail with an error like Specified key was too long; max key length is 767 bytes, because the UNIQUE INDEX on the email field requires at least 1020 bytes (255 * 4).
相关推荐
- `VARCHAR`在MySQL中没有明确的最大长度限制,但在PostgreSQL中需要指定最大长度。 - `DATE`, `TIME`, `DATETIME`在MySQL中可以直接使用,而在PostgreSQL中可能需要转换为`DATE`, `TIME`, `TIMESTAMP`。 - MySQL...
以下是对“MySQL建表的规范总结.pdf”中提到的关键点的详细解释: **设计表规范** 1. **字段非空和默认值**:创建表时,为确保数据完整性,字段应尽可能设置为非空(NOT NULL),并设定默认值。这样可以避免插入...
4. `gender VARCHAR(10) DEFAULT 'Unknown'`: `gender` 列同样是可变长度字符串类型,限制长度为10。这里还添加了一个默认值约束(DEFAULT),如果插入新记录时没有提供 `gender` 值,系统会自动将其设为 'Unknown'...
以下是对MySQL建表和索引使用规范的详细说明: **一、设计表规范** 1. **非空约束与默认值**:在创建表时,为确保数据完整性,字段应尽可能设置为非空(NOT NULL)。若允许字段为空,应提供默认值,以防止插入空值...
- `discription`:相册描述,长度限制为100个字符。 - `createtime`:创建时间,采用日期格式。 - `ablum_user_id`:用户ID,关联用户表。 - `ablum_photo_id`:相册中图片的ID,关联图片表。 - `pass_id`:相册密码...
数据库cjgl建库建表脚本是专为MySQL数据库设计的一种SQL脚本文件,该文件中包含了创建数据库“cjgl”以及在该数据库下创建表的具体指令。 首先,安装MySQL数据库的过程中,用户需要下载MySQL服务器软件包,并根据...
以下是一些关于SQL建表的基本知识点,结合提供的"SQL建表范例"资源,我们将深入探讨如何有效地设计数据库表。 1. **基本概念**:SQL是一种用于管理和处理关系数据库的语言,而建表(CREATE TABLE)语句则是用来定义...
例如,患者ID可以使用整型的自增主键,姓名可以用字符类型存储,并设置适当的长度限制,性别可以选择字符型,并限定只能为“男”或“女”。 其次,床位信息表负责记录医院可用床位的信息,包括床位ID、床位类型、...
避免为`varchar`字段设置过于严格的长度限制。例如,手机号码可能需要额外的0,邮编可能包含全角数字,姓名可能很长。应选择一个较为宽松的长度,如`varchar(50)`,并在应用程序中进行长度检查,以确保用户体验和...
如果长度超过此限制,应使用`text`类型,并将其存储在单独的表中。 5. **字段冗余**: - 字段允许适度冗余,以提高查询性能,但需确保数据一致性。 - 冗余字段应满足以下条件: - 不频繁修改的字段。 - 非`...
例如,如果用户指定创建一个名为`users`的表,包含`id`(主键,整型)、`username`(字符串,最大长度20)和`email`(字符串,无长度限制)的字段,PHP会生成如下SQL: ```sql CREATE TABLE users ( id INT ...
- 字符串类型:`char`(固定长度,溢出报错)和`varchar`(可变长度,节省空间)。 - 日期类型:`date`用于存储日期,如生日。 7. **约束与索引** - 约束用于定义字段的限制,如`not null`(非空)、`unique`...
字段类型的选取也至关重要,如性别字段使用枚举类型可以有效限制非法输入,而身份证号字段使用字符类型并设置适当的长度则是为了适应真实的数据格式。 以上是针对高校宿舍管理系统建表语句的一些基本介绍和示例,...
在进行数据库课程设计时,基于MySQL创建赏天下查询网站的建表语句是构建整个系统数据架构的核心工作之一。此过程需要设计合理的数据库表结构,确保数据的准确存储和高效查询。以下是构建赏天下查询网站数据库时需要...
如果要对用户所用的登录终端进行限制,可以更新User表中相应用户的Host字段,在进行了以上更改后应重新启动数据库服务,此时登录时可用如下类似命令: mysql -uroot -p; mysql -uroot -pnewpassword; mysql mydb ...
在数据库管理领域,MySQL是广泛使用的开源关系型数据库系统,尤其在处理大数据量时,其性能优化和高效表设计显得...在实践中,我们需要根据具体业务需求和资源限制,灵活应用这些策略和规范,以达到最优的数据库性能。
迁移到达梦数据库需要将 Mysql 的建表语句转换为达梦数据库的语句。需要注意以下几点: 1. 除主键索引外都建议使用单独语句进行索引新建。 2. 不能使用 USE BTREE。 3. int 相关字段类型不能标注长度。 4. json ...
5. `leave_type`:请假类型,如病假、年假等,可以使用`VARCHAR`存储,限制长度如20个字符。 6. `reason`:请假原因,可能较长,可使用`TEXT`或`LONGTEXT`类型。 7. `status`:请假状态,如待审批、已批准、已拒绝,...