Имейте колонку, автоматически назначенную через запрос

0

По сути, я хочу, чтобы столбец дал значение, основанное на значении из другой таблицы, когда оно вставлено.

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. Я знаю, что это можно сделать в нескольких операторах, но задавалось вопросом, можно ли оценить значения по умолчанию для столбца через запрос при вставке.

Теги:

2 ответа

-2
Лучший ответ

Как предложил кто-то, кто прокомментировал, триггеры MySQL являются решением этого вопроса. Его можно использовать для "запуска" запроса над чем-то вроде инструкции insert.

Больше информации здесь: https://www.siteground.com/kb/mysql-triggers-use/

1

Привет, вы можете использовать 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;

  • 0
    Хотя это, вероятно, сработало бы хорошо, я полагаю, что ответ, предложенный Филом, комментирующим основной пост, триггеры MySQL, вероятно, являются более универсальным ответом на вопрос. Благодарю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню