Скажем, у меня есть таблица, которая выглядит следующим образом:Использование столбца идентификации в струнной CONCAT во время операции вставки
CREATE TABLE Foo (
fooSn INT NOT NULL AUTO_INCREMENT,
fooId VARCHAR(64) NOT NULL,
PRIMARY KEY (fooSn)
)
ENGINE=InnoDB
ROW_FORMAT=DYNAMIC;
И я хочу сделать что-то вроде этого:
CREATE PROCEDURE insertWithAutoId (
p_myPrefix VARCHAR(32) NOT NULL,
)
BEGIN
INSERT INTO Foo
(fooSn, fooId)
VALUES
(DEFAULT, CONCAT(p_myPrefix, DEFAULT));
END
Это возможное?
Если вам действительно нужно это, это один из способов сделайте это http://stackoverflow.com/a/17894239/1920232 – peterm
Это сложно, но это работает! Спасибо за головы, но я не думаю, что поеду по этому маршруту. – IsenGrim
Я рассмотрел требование сохранения столбца 'fooId' в качестве конкатенации префикса строки и значения, возвращаемого с AUTO_INCRMENT. В качестве альтернативы рассмотрим сохранение префикса в отдельном столбце. И если вам нужны два столбца, объединенные (объединенные), используйте выражение в списке SELECT запроса, который ему нужен. НО ... мы не хотели бы использовать выражение CONCAT() в предикате (т. Е. В условии в предложении WHERE.) – spencer7593