MYSQL 不接受空格

标签 mysql primary-key

我在 mysql 中创建了一个表:

CREATE TABLE `test1` (
  `age` int(12) NOT NULL DEFAULT '0',
  `name` varchar(20) NOT NULL DEFAULT '',
  `gender` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`age`,`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我要在此表中插入 2 行:

insert into test1 values(1,'user1','m');
insert into test1 values(1,'user1  ','m');

在第二行插入中,我希望我的“姓名”字段有空格。 但是当我运行第二个查询时,它给出了违反主键的错误。

有没有一种方法可以在具有主键的表中插入空格?

最佳答案

VARCHAR 列中的值是可变长度的字符串。你可以申报 VARCHAR 列是 1 到 255 之间的任意长度,就像 CHAR 列。但是,与 CHAR 不同,VARCHAR 值是使用 只需要多少个字符,再加上一个字节来记录 长度。值未填充;相反,尾随空格被删除 存储值时。 (此空格删除不同于 SQL-99 规范。)

您可能需要 lpad、rpad 或 space

如果你正在为 html 开发你可以用不同的字符替换空白,一旦你查询你用空白替换字符,你甚至可以使用 " " 这将在您的 html 浏览器中插入一个空白区域

关于MYSQL 不接受空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29230311/

相关文章:

mysql - 循环表并调用存储过程

使用 UNION 和 SORT 的 MySql 查询

Codeigniter MY_Model 复合主键

sql - 如何在Sql Server 中为主键指定自定义排序顺序

sql - 仅主键和主键约束有什么区别?

php - 使用FOR循环消除数组检索到的数字

php - 我想从数据库中选择数据我的代码有什么错误,

php - 在表中插入数据和多个图像 [PHP]

primary-key - MySQL keys : PRIMARY KEY, FOREIGN KEY, KEY -- "KEY"是什么?

java - Spring data JPA - 从一个实体参数中排除 ID 列