2009-05-08 5 views
1

私は、NetBeans 6.7 Betaを使用して、MySQL(バージョン5.0.45-log)データベースからエンティティクラスを作成しています。 NetBeansはほとんどのテーブルを受け入れますが、一貫性のあるものは拒否します(パターンは見えません)。「プライマリキーなし」と言っています。すべてのテーブルがInnoDBエンジンを使用しています。すべての表には、1つ以上の列の主キーがあります。 MySQLクエリーブラウザとNetBeansの内部データベースナビゲータは、すべてのテーブルが実際にプライマリキーを持っていることに同意します。どうしたの?与えるものNetBeans 6.7 Beta - 特定のテーブルにプライマリキーがないと思われるのはなぜですか?

-- ----------------------------------------------------- 
-- Table `beamline`.`rq_requests` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `beamline`.`rq_requests` (
    `id` INT NOT NULL AUTO_INCREMENT , 
    `facility_id` INT NOT NULL , 
    `schedule_id` INT NOT NULL , 
    `experiment_id` INT NOT NULL , 
    `person_id` INT NOT NULL , 
    `shift_per_block` INT NOT NULL , 
    `block_count` INT NOT NULL , 
    `other_requirment` VARCHAR(1023) NULL , 
    `submitted` BOOLEAN NOT NULL , 
    `date_modified` DATETIME NOT NULL , 
    `date_created` DATETIME NOT NULL , 
    PRIMARY KEY (`id`) , 
    INDEX `fk_rq_requests_xa_facilities` (`facility_id` ASC) , 
    INDEX `fk_rq_requests_xa_schedules` (`schedule_id` ASC) , 
    INDEX `fk_rq_requests_eec_exp_toc` (`experiment_id` ASC) 
# ,INDEX `fk_rq_requests_eec_members` (`person_id` ASC) 
,CONSTRAINT `fk_rq_requests_xa_facilities` 
    FOREIGN KEY (`facility_id`) 
    REFERENCES `beamline`.`xa_facilities` (`id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION 
,CONSTRAINT `fk_rq_requests_xa_schedules` 
    FOREIGN KEY (`schedule_id`) 
    REFERENCES `beamline`.`xa_schedules` (`id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION 
,CONSTRAINT `fk_rq_requests_eec_exp_toc` 
    FOREIGN KEY (`experiment_id`) 
    REFERENCES `beamline`.`eec_exp_toc` (`exp_id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION 
# ,CONSTRAINT `fk_rq_requests_eec_members` 
# FOREIGN KEY (`person_id`) 
# REFERENCES `beamline`.`rq_questions` (`admin_uid`) 
# ON DELETE NO ACTION 
# ON UPDATE NO ACTION 
) 
ENGINE = InnoDB; 

-- ----------------------------------------------------- 
-- Table `beamline`.`rq_questions_facilities` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `beamline`.`rq_questions_facilities` (
    `facility_id` INT NOT NULL , 
    `question_id` INT NOT NULL , 
    PRIMARY KEY (`facility_id`, `question_id`) , 
    INDEX `fk_req_faciliy_current_question_req_question` (`question_id` ASC) , 
    INDEX `fk_rq_questions_facilities_xa_facilities` (`facility_id` ASC), 
    CONSTRAINT `fk_req_faciliy_current_question_req_question` 
    FOREIGN KEY (`question_id`) 
    REFERENCES `beamline`.`rq_questions` (`id`) 
    ON DELETE CASCADE 
    ON UPDATE CASCADE, 
    CONSTRAINT `fk_rq_questions_facilities_xa_facilities` 
    FOREIGN KEY (`facility_id`) 
    REFERENCES `beamline`.`xa_facilities` (`id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION 
) 
ENGINE = InnoDB; 


-- ----------------------------------------------------- 
-- Table `beamline`.`rq_questions_supressed` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `beamline`.`rq_questions_suppressed` (
    `facility_id` INT NOT NULL , 
    `question_id` INT NOT NULL , 
    PRIMARY KEY (`facility_id`, `question_id`) , 
    INDEX `fk_req_facility_suppressed_question_req_question` (`question_id` ASC) , 
    INDEX `fk_rq_questions_suppressed_xa_facilities` (`facility_id` ASC), 
    CONSTRAINT `fk_req_facility_suppressed_question_req_question` 
    FOREIGN KEY (`question_id`) 
    REFERENCES `beamline`.`rq_questions` (`id`) 
    ON DELETE CASCADE 
    ON UPDATE CASCADE, 
    CONSTRAINT `fk_rq_questions_suppressed_xa_facilities` 
    FOREIGN KEY (`facility_id`) 
    REFERENCES `beamline`.`xa_facilities` (`id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 

:ここ

が悪いのテーブルを生成するスクリプトスニペットのですか?前もって感謝します。

+0

これはNetBeansのバグレポートではないでしょうか? –

答えて

1

問題を解決しました。 xa_facilitiesの外部キーはINT(11)でしたが、xa_facilitiesの主キーはINT(4)でした。ダー!

1

クエリを実行しようとしましたが(NB6.5.1)、正常に動作しているようです。私はすべての外部キー制約をコメントにしなければならなかったので、正確な再生ではありません。

この場合、参照先のテーブル(xa_facilities、rq_questionsなど)をすべて作成していない可能性がありますか?それらは適切に構成されていますか?

将来的にリレーショナル制約を別々のスクリプトに分けて、すべてテーブルがあることを常に確実にしておくことをお勧めします。

関連する問題