Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme avec CREATE ROLE dans PhpMyAdmin

    21 septembre 2022 à 22:26:46

    Bonjour,

    Quand je veux créer un rôle via mon script SQL j'ai une erreur 1064 qui est retournée et je ne comprend pas pourquoi.

    Ci-après mon script :

    -- suppression de la BDD puis création de la BDD ecole_rdv, ce qui permet de lancer le script plusieurs fois.
    DROP DATABASE IF EXISTS bdd_devoir_data2;
    CREATE DATABASE bdd_devoir_data2;
    -- selection de la BDD
    USE bdd_devoir_data2;

    -- suppression si elle existe puis création de la table eleves.
    DROPTABLE IF EXISTS eleves;
    CREATE TABLE IF NOT EXISTS eleves (
        eleve_id INT(5) NOT NULL AUTO_INCREMENT,
        eleve_nom VARCHAR(45) NOT NULL,
        eleve_prenom VARCHAR(45) NOT NULL,
    PRIMARY KEY (eleve_id)
    ) ENGINE = InnoDB CHARSET = utf8;

    -- suppression si elle existe puis création de la table professeurs.
    DROP TABLE IF EXISTS professeurs;
    CREATE TABLE IF NOT EXISTS professeurs (
        professeur_id INT(11) NOT NULL AUTO_INCREMENT,
        professeur_nom VARCHAR(50) NOT NULL,
        professeur_prenom VARCHAR(50) NOT NULL,
    PRIMARY KEY (professeur_id)
    ) ENGINE = InnoDB CHARSET = utf8;


    -- suppression si elle existe puis création de la table matieres.
    DROP TABLE IF EXISTS matieres;
    CREATE TABLE IF NOT EXISTS matieres (
        matiere_id INT(11) NOT NULL AUTO_INCREMENT,
        matiere_nom VARCHAR(100) NOT NULL,
        matiere_desc VARCHAR(250),
    PRIMARY KEY (matiere_id)
    ) ENGINE = InnoDB CHARSET = utf8;

    -- suppression si elle existe puis création de la table enseigner.
    DROP TABLE IF EXISTS enseigner;
    CREATE TABLE IF NOT EXISTS enseigner (
        enseigner_id INT(11) NOT NULL AUTO_INCREMENT,
        professeur_id INT(11) NOT NULL,
        matiere_id INT(11) NOT NULL,
        date_deb_ens DATE,
        date_fin_ens DATE,
    PRIMARY KEY (enseigner_id),
    FOREIGN KEY (professeur_id) REFERENCES professeurs (professeur_id) ON UPDATE CASCADE ON DELETE RESTRICT,
    FOREIGN KEY (matiere_id) REFERENCES matieres (matiere_id) ON UPDATE CASCADE ON DELETE RESTRICT
    ) ENGINE = InnoDB CHARSET = utf8;

    -- suppression si elle existe puis création de la table rdv.
    DROP TABLE IF EXISTS rdv;
    CREATE TABLE IF NOT EXISTS rdv (
        rdv_id INT(11) NOT NULL AUTO_INCREMENT,
        eleve_id INT(5) NOT NULL,
        matiere_id INT(11) NOT NULL,
        professeur_id INT(11) NOT NULL,
        rdv_dat DATE,
        rdv_h_deb TIME,
        rdv_h_fin TIME,
    PRIMARY KEY (rdv_id),
    FOREIGN KEY (eleve_id) REFERENCES eleves (eleve_id) ON UPDATE CASCADE ON DELETE RESTRICT,
    FOREIGN KEY (matiere_id) REFERENCES matieres (matiere_id) ON UPDATE CASCADE ON DELETE RESTRICT,
    FOREIGN KEY (professeur_id) REFERENCES professeurs (professeur_id) ONUPDATE CASCADE ON DELETE RESTRICT
    ) ENGINE = InnoDB CHARSET = utf8;

    -- suppression si elle existe puis création de la table cours.
    DROP TABLE IF EXISTS cours;
    CREATE TABLE IF NOT EXISTS cours (
        cours_id INT(11) NOTNULL AUTO_INCREMENT,
        cours_nom VARCHAR(50) NOT NULL,
        cours_desc VARCHAR(250),
        matiere_id INT(11) NOT NULL,
    PRIMARY KEY (cours_id),
    FOREIGN KEY (matiere_id) REFERENCES matieres (matiere_id) ON UPDATE CASCADE ON DELETE RESTRICT
    ) ENGINE = InnoDB CHARSET = utf8;

    -- suppression si elle existe puis création de la table devoirs.
    DROP TABLE IF EXISTS devoirs;
    CREATE TABLE IF NOT EXISTS devoirs (
        devoir_id INT(11) NOT NULL AUTO_INCREMENT,
        devoir_nom VARCHAR(250),
        devoir_desc TEXT,
        cours_id INT(11) NOT NULL,
    PRIMARY KEY (devoir_id),
    FOREIGN KEY (cours_id) REFERENCES cours (cours_id) ON UPDATE CASCADE ON DELETE RESTRICT
    ) ENGINE = InnoDB CHARSET = utf8;


    -- Création des rôles
    CREATE ROLE professeurs;

    -
    Edité par ThomasRousselin1 21 septembre 2022 à 22:30:10

    • Partager sur Facebook
    • Partager sur Twitter
      22 septembre 2022 à 0:22:27

      Bonjour,

      Tu ne donnes pas le message d'erreur, mais dans ce contexte de toute façon la création de rôles n'est pas  pertinente... car il faudrait créer différents utilisateurs, donc différentes chaînes de connexion à la base, ce qui paraît complexe à gérer dans ton application...

      Pourquoi vouloir faire cela ?

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        22 septembre 2022 à 12:11:09

        Bonjour,

        Le message d'erreur est 1064 - erreur de syntaxe à proximité de 'ROLE. 

        En fait c'est un exercice que je dois rendre dans le cadre d'une formation et cela part du postulat qu'il y aura plusieurs élèves, et plusieurs professeurs qui pourra utiliser la base de donnée pour manipuler la table rdv. 

        Ce que je ne comprends pas c'est que la requête marche nickel dans SQL shell ou dans la console MariaDb, mais me retourne l'erreur de syntaxe dans la console SQL de PHPMyAdmin. Et j'aimerai bien comprendre pourquoi pour anticiper mes futurs besoins qui seront eux bien réels.

        Merci beaucoup pour le retour. 

        • Partager sur Facebook
        • Partager sur Twitter
          22 septembre 2022 à 13:57:52

          Drôle d'exercice :)

          Il semble que l'erreur est propre à PHPMyAdmin, peut-être tenter une montée de version de celui-ci,l'arrivée des rôles étant assez récente dans MYSQL MARIADB.

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            22 septembre 2022 à 21:46:22

            Hahaha effectivement mais bon on fait ce qu'on demande :)

            Il semblerai oui, je vais tenter la mise à jour avec la dernière version en espérant que ce problème soit resolu.

            En tout cas merci pour les réponses !

            Bonne soirée

            • Partager sur Facebook
            • Partager sur Twitter

            Probleme avec CREATE ROLE dans PhpMyAdmin

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            • Editeur
            • Markdown