3

user_info テーブルに外部キー制約を追加しようとしています。これは、users テーブル (user_id) の主キーです。

ALTER TABLE user_info
ADD CONSTRAINT fk_userID
FOREIGN KEY (user_id)
REFERENCES users(user_id);

ただし、次のエラーが発生します。

Error starting at line 26 in command:
ALTER TABLE user_info
ADD CONSTRAINT fk_userID
FOREIGN KEY (user_id)
REFERENCES users(user_id)
Error report:
SQL Error: ORA-02298: cannot validate (CLAYBANKS.FK_USERID) - parent keys not found
02298. 00000 - "cannot validate (%s.%s) - parent keys not found"
*Cause:    an alter table validating constraint failed because the table has
           child records.
*Action:   Obvious

何か案は?

4

2 に答える 2

0

これは Oracle エラー (ORA-XXXXX) です。これは、 USER_INFOテーブルの 1 つ以上の行に、参照されるテーブル (この場合はテーブルUSERS ) に存在しないUSER_IDフィールドがあることを意味します。

このリクエストを使用して、参照されていない ID を取得できます。

SELECT ui.*
FROM USER_INFO ui
WHERE NOT EXISTS
(SELECT * FROM USERS u WHERE u.user_id = ui.user_id)
于 2013-06-18T14:31:25.000 に答える