В моей таблице у меня есть два поля: book
и reference
. Ни один из них не должен быть уникальным по своему усмотрению. Однако конкатенированное значение этих двух значений должно быть уникальным.
Я пытаюсь создать созданный столбец, который объединяет два, но я получаю следующее сообщение об ошибке при запуске SQL:
Executing:
ALTER TABLE 'bibleverses'.'myverses'
ADD COLUMN 'fullref' VARCHAR(20) GENERATED ALWAYS AS (CONCAT(book, reference)) STORED AFTER 'mp3';
Operation failed: There was an error while applying the SQL script to the database.
ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GENERATED ALWAYS AS (CONCAT(book, reference)) STORED AFTER 'mp3'' at line 2
SQL Statement:
ALTER TABLE 'bibleverses'.'myverses'
ADD COLUMN 'fullref' VARCHAR(20) GENERATED ALWAYS AS (CONCAT(book, reference)) STORED AFTER 'mp3'
Вы можете достичь этой цели, просто применяя ограничение UNIQUE-ключа для обоих этих столбцов, и оно станет составным ключом, чтобы вы могли хранить уникальные значения в паре этих двух столбцов. Вы можете попробовать выполнить инструкцию SQL:
ALTER TABLE bibleverses.myverses ADD UNIQUE(book, reference);
Сначала выполните таблицу alter, чтобы добавить новый столбец, после чего вы запустите обновление, чтобы заполнить fild, например:
ALTER TABLE <table_name> ADD COLUMN <column name, type, definition, etc>;
UPDATE TABLE <table_name> SET <field> = <value>;