我的表的主键是一个固定长度为11的字符。我在脚本中预先计算了密钥,如下所示: SET pes = LPAD(person_number, 11, '0'); 现在,我的变量符合我的标准。它只需要添加到数据库中。 INSERT INTO db VALUES(pes, ...); 这就是我的问题所在——因为主键应该是char,所以我需要将变量的值放在单引号中。但是,我不知道怎么做。我试图逃离他们,但是 '\''pes'\'' 不起作用。有没有一个简单的方法来实现这一点?
SET pes = LPAD(person_number, 11, '0');
INSERT INTO db VALUES(pes, ...);
'\''pes'\''
lokaqttq1#
您可以尝试使用多个单引号 concat 功能。
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' |
db fiddle视图
oxalkeyp2#
这应该不是问题!这个 mySql varchar数据类型应该接受数字!
mySql
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
这是一把小提琴
2条答案
按热度按时间lokaqttq1#
您可以尝试使用多个单引号
concat
功能。这是一个样本
架构(mysql v5.7)
查询#1
db fiddle视图
oxalkeyp2#
这应该不是问题!
这个
mySql
varchar数据类型应该接受数字!将输出:
这是一把小提琴