表的主键是固定长度11的字符。
我已经预先计算了脚本中的密钥,就像这样:
SET pes = LPAD(person_number, 11, '0');
现在,我的变量符合我的标准。只需将其添加到数据库中。
INSERT INTO db VALUES(pes, ...);
这是我出现问题的地方-由于主键应该是char,因此我需要将变量的值放在单引号中。
但是,我不知道该怎么做。 我试图逃脱它们,但是
'\''pes'\''
不起作用。
有没有简单的方法可以做到这一点?
答案 0 :(得分:0)
您可以尝试通过concat
函数使用多单引号。
INSERT INTO db VALUES(concat('''', @pes,''''), ...);
这是一个样本
模式(MySQL v5.7)
CREATE TABLE T(col varchar(50));
SET @pes = '1234';
INSERT INTO T VALUES (concat('''', @pes,''''));
查询#1
select col
FROM T;
| col |
| ------ |
| '1234' |
答案 1 :(得分:0)
这应该没问题!
mySql
varchar数据类型应接受数字!
CREATE TABLE USERS (USER_ID VARCHAR(255) NOT NULL UNIQUE PRIMARY KEY,
USER_NAME VARCHAR(255));
SET @U_ID = LPAD(2018, 11, '0');
INSERT INTO USERS VALUES (@U_ID, 'USER_1'),(2, 'USER_2');
SELECT * FROM USERS;
将输出:
USER_ID | USER_NAME
-------------------------
00000002018 | USER_1
2 | USER_2
这是有效的fiddle