Bonjour,

je crée ma première base et j'ai quelques questions

Nom : 216288temp.png
Affichages : 146
Taille : 7,1 Ko

le code généré par MySql :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
-- -----------------------------------------------------
-- Table `myDb`.`INTERVENANTS`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `myDb`.`INTERVENANTS` ;
 
CREATE TABLE IF NOT EXISTS `myDb`.`INTERVENANTS` (
  `NIR` INT NOT NULL,
  PRIMARY KEY (`NIR`),
  UNIQUE INDEX `ID_INTERVENANT_UNIQUE` (`NIR` ASC))
ENGINE = InnoDB;
 
-- -----------------------------------------------------
-- Table `myDb`.`IDENTIFIANTS`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `myDb`.`IDENTIFIANTS` ;
 
CREATE TABLE IF NOT EXISTS `myDb`.`IDENTIFIANTS` (
  `NIR` INT NOT NULL,
  `NOM` VARCHAR(255) NOT NULL,
  `PRENOM` VARCHAR(255) NOT NULL,
  `TELEPHONE` INT NULL,
  `MAIL` VARCHAR(255) NULL,
  PRIMARY KEY (`NIR`),
  CONSTRAINT `fk_IDENTIFIANTS_INTERVENANTS1`
    FOREIGN KEY (`NIR`)
    REFERENCES `myDb`.`INTERVENANTS` (`NIR`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
Une ligne dans la table IDENTIFIANTS ne doit exister que si le NIR correspondant existe dans la table INTERVENANTS.
De la même manière un NIR dans la table INTERVENANTS impose l’existence d'une ligne dans IDENTIFIANTS.

1. Pourquoi MySql ne m'a pas généré de contrainte de clé étrangère dans la table INTERVENANTS ?
2. Lorsque j'insère une ligne dans INTERVENANTS le moteur accepte sans broncher alors qu'il n'y a pas la ligne correspondante dans IDENTIFIANTS (je suppose que cela vient du 1.)
3. Plus tard, je souhaite développer un programme en Java pour insérer des valeurs dans mes tables. A quel niveau doit se déroulé la vérification de la cohérence des données ?