MySQL: вставить оператор, чтобы добавить запись в TABLE_1 - PullRequest
4 голосов
/ 20 сентября 2019

Один оператор вставки для добавления новой записи в TABLE_1, для которого:

  1. Значение TABLE_1_ID будет вставлено как общее количество записей в TABLE_1 + 1.
  2. COLUMN_NAME будет иметьзначение как "ABC".
  3. Значение TABLE_2_ID должно быть выбрано из TABLE_2 на основе значения COLUMN_NAME, которое равно "ABC".
  4. Значение TABLE_3_ID должно быть выбрано из TABLE_3 на основе значения COLUMN_NAME, которое является«ABC».

Все вышеперечисленные операторы должны быть выполнены с помощью оператора Single Insert.Схемы всех трех таблиц приведены ниже:

TABLE_1

COLUMN_NAME     COLUMN_TYPE     IS_NULLABLE     COLUMN_KEY     COLUMN_DEFAULT    
-----------    --------------  --------------  -------------   --------------                   
TABLE_1_ID      smallint(6)     NO              PRI            (null)                      
COLUMN_NAME     varchar(200)    YES                            (null)                      
TABLE_2_ID      smallint(6)     YES             MUL            (null)                      
TABLE_3_ID      smallint(6)     YES             MUL            (null)

TABLE_2

COLUMN_NAME     COLUMN_TYPE     IS_NULLABLE     COLUMN_KEY     COLUMN_DEFAULT         
--------------  --------------  --------------  -------------  -----------------   
TABLE_2_ID      smallint(6)     NO              PRI            (null)                      
COLUMN_NAME     varchar(20)     YES                            (null)       

TABLE_3

COLUMN_NAME     COLUMN_TYPE     IS_NULLABLE     COLUMN_KEY     COLUMN_DEFAULT         
--------------  --------------  --------------  -------------  -----------------   
TABLE_3_ID      smallint(6)     NO              PRI            (null)                      
COLUMN_NAME     varchar(20)     YES                            (null)   

1 Ответ

3 голосов
/ 20 сентября 2019
INSERT INTO TABLE_1(TABLE_1_ID, COLUMN_NAME, TABLE_2_ID, TABLE_3_ID)
SELECT COUNT(*) + 1, 'ABC', (SELECT TABLE_2_ID FROM TABLE_2 WHERE COLUMN_NAME = 'ABC'), (SELECT TABLE_3_ID FROM TABLE_3 WHERE COLUMN_NAME = 'ABC') FROM TABLE_1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...