Ich verwende NetBeans 6.7 Beta, um Entity-Klassen aus einer MySQL-Datenbank (Version '5.0.45-log') zu erstellen. NetBeans akzeptiert die meisten Tabellen, lehnt bestimmte jedoch konsequent ab (ich sehe kein Muster) und sagt, dass sie "keinen Primärschlüssel" haben. Alle Tabellen verwenden die InnoDB-Engine. Alle Tabellen haben Primärschlüssel aus einer oder mehreren Spalten. Der MySQL Query Browser und der interne Datenbanknavigator von NetBeans stimmen überein, dass alle Tabellen tatsächlich einen Primärschlüssel haben. Was geht?NetBeans 6.7 Beta - Warum glaubt es, dass bestimmte Tabellen keinen Primärschlüssel haben?
Hier ist das Skript-Schnipsel, die schlechten Tabellen zu erzeugen:
-- -----------------------------------------------------
-- 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;
Was soll das? Danke im Voraus.
Sollte dies nicht ein NetBeans-Fehlerbericht sein? –