Мне нужно определить строку, которая вызвала сбой проверки ограничения после оператора INSERT OR IGNORE
.
Мне это нужно для инструмента, который генерирует операторы SQL, поэтому я не могу связать это с конкретнымвариант использования с конкретной таблицей.
Проблема в том, что я не могу знать, какие ограничения установлены для конкретной таблицы, в которую я буду вставлять.Он может иметь внешний ключ или ограничения UNIQUE
, или даже присоединенное предложение CHECK
.
Итак, все, что я могу узнать из INSERT, это то, что он потерпел неудачу.Теперь, как узнать, какая строка прервала вставку?
Уточнение:
Мне нужно решение, которое использует операторы / выражения SQLто есть я не могу писать код, отличный от SQL.
Бонусный вопрос, если в SQLite это невозможно:
Можно ли это сделать вPostgresql или MySQL?
Пример использования
Вот пример использования этой функции (см. 2-й пример и примечание наконец, указывающий на этот вопрос): https://stackoverflow.com/a/53461201/43615