Дополнительно
ORA-02264: имя уже используется существующим ограничением
Я работаю над SQL и столкнулся с проблемой при создании таблицы! Вот мой код:
CREATE TABLE Voucher_Types
(
ID Number(3, 0),
Abbreviation VarChar(2),
Voucher_Type VarChar(100),
EntryBy VarChar(25),
EntryDate Date,
CONSTRAINT ID_PK Primary Key(ID)
);
И я получаю следующую ошибку,
ORA-02264: имя уже используется существующим ограничением
Я использую Oracle10g
I Goggled It And Found Some Topics But They Didn't Help Me, Can Somebody Help Me In This Problem! Заранее спасибо...!
3
3
У вас есть другая таблица, на которую уже наложено ограничение с именем
ID_PK
.Если вы хотите узнать, какая это таблица, вы можете попробовать
Скорее всего, вы скопировали оператор
create table
, но не изменили имя ограничения первичного ключа.Обычно считается хорошей практикой включать имя таблицы в имя ограничения. Одна из причин - предотвращение подобных "ошибок".
Таким образом, в вашем случае вы можете использовать
Update Почему одно и то же имя ограничения не может быть использовано дважды? (Согласно вашему вопросу в комментарии): Именно потому, что это имя идентифицирует ограничение. Если у вас есть нарушение ограничения в работающей системе, вы хотите знать, какое именно ограничение было нарушено, поэтому вам нужно имя. Но если это имя может относиться к нескольким ограничениям, то имя не имеет особого смысла.
Сообщение об ошибке говорит вам, что в вашей схеме уже есть другое ограничение с именем ID_PK - просто используйте другое имя, и все будет в порядке:
Чтобы найти нарушающее ограничение:
это означает, что существует ограничение с именем ID_PK попробуйте с
CONSTRAINT Voucher_Types_ID_PK Primary Key(ID)
, напримервы можете проверить, существует ли оно, используя
или