我在 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/