По сути, я хочу, чтобы столбец дал значение, основанное на значении из другой таблицы, когда оно вставлено.
version_numbers (table) (id, ...): 1, 2, 3, 4, 5, 6
application_debug (table) (debug_id, ver_id ...)
При вставке debug_id устанавливается с помощью автоматического приращения, но мне также хотелось бы, чтобы ver_id был задан с запросом вроде этого ver_id = SELECT MAX(id) FROM Version_Numbers
В этом примере при вставке в application_debug
я бы хотел, чтобы ver_id
был заполнен с наибольшим идентификатором, хранящимся в version_numbers
. Я знаю, что это можно сделать в нескольких операторах, но задавалось вопросом, можно ли оценить значения по умолчанию для столбца через запрос при вставке.
Как предложил кто-то, кто прокомментировал, триггеры MySQL являются решением этого вопроса. Его можно использовать для "запуска" запроса над чем-то вроде инструкции insert.
Больше информации здесь: https://www.siteground.com/kb/mysql-triggers-use/
Привет, вы можете использовать select, как показано ниже:
insert into application_debug(ver_id) select max(id) from version_numbers;
Если вы хотите вставить любые статические значения в application_debug, которые не из verions_numbers, тогда вы можете написать запрос, как показано ниже:
insert into application_debug(ver_id,col2) select max(id),'val2' from version_numbers;