#sql #oracle
Вопрос:
Я получаю эту ошибку каждый раз, когда пытаюсь выполнить приведенный ниже запрос в своем скрипте Python:
ошибка oraexec:ORA-00001: нарушено уникальное ограничение.
SQL-код:
UPDATE orders_table
SET ORDER_START = CURRENT_TIMESTAMP
WHERE ORDERNUMBER = '14295221'
Я знаю, что ошибка, которую я получаю, означает, что существуют повторяющиеся значения, однако, когда я выполняю этот запрос ниже:
SELECT *
FROM orders_table
WHERE ORDERNUMBER = '14295221'
Я возвращаюсь на один ряд, так что я знаю, что это уникально. Еще одна вещь, которую я нахожу довольно странной, заключается в том, что когда я запускаю запрос на обновление в разработчике SQL, я могу обновить столбец, но когда я делаю это в своем скрипте python, я получаю ошибку, и я понятия не имею, почему.
Комментарии:
1. Какие-нибудь задействованные триггеры?
2. можете ли вы показать, как ваш код python обновляет столбец ?
3. У вас может быть несколько ограничений, а не только
primary key
ограничение. Возможноorder_start
, связано сunique
ограничением, и в этом проблема. Как отмечалось выше, триггер, если он существует, может также означать, что задействованы ограничения из других таблиц.4. Ты меняешься
ORDER_START
. Это приводит к нарушению ограничений.5. Но я смог изменить ORDER_START в разработчике SQL, поэтому разве он не должен работать в моем сценарии?