MySQL - окружающая предварительно вычисленная переменная с одинарными кавычками перед вставкой - PullRequest
0 голосов
/ 07 ноября 2018

Первичным ключом моей таблицы является символ фиксированной длины 11.

Я предварительно вычислил ключ в моем скрипте, вот так:

SET pes = LPAD(person_number, 11, '0');

Теперь моя переменная соответствует моему критерию. Его нужно только добавить в базу данных.

INSERT INTO db VALUES(pes, ...);

Здесь возникает моя проблема - поскольку первичный ключ должен быть символом, мне нужно поместить значение моей переменной в одинарные кавычки.

Однако я не знаю, как это сделать. Я пытался сбежать от них, но

'\''pes'\''

не работает.

Есть ли простой способ сделать это?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Это не должно быть проблемой!

Тип данных 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

Это рабочая скрипка

0 голосов
/ 07 ноября 2018

Вы можете попробовать использовать несколько одинарных кавычек с функцией 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' |

Просмотр на БД Fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...