Как я могу получить текущее значение для MariaDB? - PullRequest
0 голосов
/ 29 сентября 2018

Я хотел бы получить текущее значение, которое является номером ID.Для моей таблицы у идентификатора есть опция Auto_increment, и я хотел бы получить значение идентификатора.В Oracle это выглядит так:

    INSERT INTO mvc_board(bName, bTitle, bContent, bHit, bGroup, bStep,
bIndent) 
VALUES('abcd', 'is title', 'is content', 0, mvc_board_seq.currval, 0, 0);

Однако я использую MariaDB, поэтому я использовал этот запрос:

INSERT INTO mvc_board (bName, bTitle, bContent, bHit, bGroup, bStep, bIndent)
VALUES ('pat', 'is title', 'is content', 0, SELECT MAX(bId) FROM mvc_board, 0, 0);

Тем не менее, это имеет синтаксическую ошибку.Как я могу это исправить?

Ответы [ 3 ]

0 голосов
/ 29 сентября 2018

При этом будет использоваться переменная сеанса mysql.Сначала сохраните максимальный идентификатор в @last_insert_id, затем используйте это в своем запросе.Надеюсь, это поможет.

SET @last_insert_id := 0;

SELECT @last_insert_id := MAX(bId) FROM mvc_board;


INSERT INTO mvc_board (bName, bTitle, bContent, bHit, bGroup, bStep, bIndent)
VALUES ('pat', 'is title', 'is content', 0, @last_insert_id, 0, 0);
0 голосов
/ 29 сентября 2018

Следующее значение auto_increment доступно в INFORMATION_SCHEMA:

INSERT INTO mvc_board (bName, bTitle, bContent, bHit, bGroup, bStep, bIndent)
SELECT 'pat', 'is title', 'is content', 0, AUTO_INCREMENT, 0, 0 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = database() AND TABLE_NAME = 'mvc_board';
0 голосов
/ 29 сентября 2018
INSERT INTO mvc_board (bName, bTitle, bContent, bHit, bGroup, bStep, bIndent)
SELECT 'pat', 'is title', 'is content', 0, MAX(bId), 0, 0 FROM mvc_board
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...