Создание триггера MySQL для проверки данных в другой таблице

Вы можете использовать оператор sizeof, но он не будет работать для функций, потому что для ссылки на указатель вы можете сделать следующее, чтобы найти длину массива:

len = sizeof(arr)/sizeof(arr[0])

Код, первоначально найденный здесь : C программа для поиска числа элементов в массиве

1
задан Dan H 13 May 2010 в 17:47
поделиться

2 ответа

Если у вас есть уникальные индексы, вы всегда можете сделать INSERT IGNORE

 CREATE TRIGGER ins_bills AFTER INSERT ON databaseA.bills
    FOR EACH ROW
      BEGIN
          INSERT IGNORE INTO databaseB.bills (billNumber) VALUES (NEW.billNumber);
      END //
1
ответ дан 3 September 2019 в 00:33
поделиться

Предполагая, что вы используете // в качестве разделителя, вам просто нужно использовать точки с запятой в конце sql stmts внутри тела триггера и использовать // после триггера END:

CREATE TRIGGER ins_bills AFTER INSERT ON databaseA.bills
FOR EACH ROW
  BEGIN
    IF NOT EXISTS (SELECT 1 FROM databaseB.bills WHERE billNumber=NEW.billNumber) THEN
      INSERT INTO databaseB.bills (billNumber) VALUES (NEW.billNumber);
    END IF;
  END //
1
ответ дан 3 September 2019 в 00:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: