phpmyadmin fichier sql data modeler

tantoillane

Membre expert
Club iGen
25 Février 2005
2 311
200
33
Essonne
Bonjour,

J'ai créé un fichier sql contenant mes tables avec datamodeler sous XP. Je l'ai exécuté sans problèmes avec sql devlepper pour XP. J'aimerais maintenant l'exécuter avec phpmyadmin sous OS X, mais il me signale que mon code est mal écrit.

le sql
Bloc de code:
-- Generated by Oracle SQL Developer Data Modeler Version: 2.0.0 Build: 570
--   at:        2009-12-02 18:30:59
--   site:      Oracle Database 10g
--   type:      Oracle Database 10g



CREATE TABLE APARTICIPE 
    ( 
     APARTICIPER NUMBER  NOT NULL , 
     DOCUMENT NUMBER , 
     INTERVENANT NUMBER 
    ) 
;



ALTER TABLE APARTICIPE 
    ADD CONSTRAINT APARTICIPE_PK PRIMARY KEY ( APARTICIPER ) ;


CREATE TABLE APRODUIT 
    ( 
     APRODUIT NUMBER  NOT NULL , 
     PRODUCTEUR NUMBER , 
     DOCUMENT NUMBER 
    ) 
;



ALTER TABLE APRODUIT 
    ADD CONSTRAINT APRODUIT_PK PRIMARY KEY ( APRODUIT ) ;


CREATE TABLE DOCUMENT 
    ( 
     DOCUMENT NUMBER  NOT NULL , 
     Type VARCHAR2 (128) , 
     Genre VARCHAR2 (128) , 
     Nom VARCHAR2 (128) , 
     Annee VARCHAR2 (4) , 
     Taille NUMBER , 
     Debit_audio NUMBER , 
     Debit_video NUMBER , 
     Date_ajout VARCHAR2 (128) , 
     Duree VARCHAR2 (128) , 
     Emplacement VARCHAR2 (128) , 
     APARTICIPER NUMBER , 
     APRODUIT NUMBER , 
     ESTDANS NUMBER 
    ) 
;



ALTER TABLE DOCUMENT 
    ADD CONSTRAINT DOCUMENT_PK PRIMARY KEY ( DOCUMENT ) ;


CREATE TABLE ESTDANS 
    ( 
     ESTDANS NUMBER  NOT NULL , 
     LIEU NUMBER , 
     DOCUMENT NUMBER 
    ) 
;



ALTER TABLE ESTDANS 
    ADD CONSTRAINT ESTDANS_PK PRIMARY KEY ( ESTDANS ) ;


CREATE TABLE INTERVENANT 
    ( 
     INTERVENANT NUMBER  NOT NULL , 
     Type NUMBER , 
     Nom VARCHAR2 (128) , 
     Prenom VARCHAR2 (128) , 
     APARTICIPER NUMBER 
    ) 
;



ALTER TABLE INTERVENANT 
    ADD CONSTRAINT INTERVENANT_PK PRIMARY KEY ( INTERVENANT ) ;


CREATE TABLE LIEU 
    ( 
     LIEU NUMBER  NOT NULL , 
     Pays VARCHAR2 (128) , 
     Ville VARCHAR2 (128) , 
     ESTDANS NUMBER 
    ) 
;



ALTER TABLE LIEU 
    ADD CONSTRAINT LIEU_PK PRIMARY KEY ( LIEU ) ;


CREATE TABLE PRODUCTEUR 
    ( 
     PRODUCTEUR NUMBER  NOT NULL , 
     Nom VARCHAR2 (128) , 
     Prenom VARCHAR2 (128) , 
     APRODUIT NUMBER 
    ) 
;



ALTER TABLE PRODUCTEUR 
    ADD CONSTRAINT PRODUCTEUR_PK PRIMARY KEY ( PRODUCTEUR ) ;



ALTER TABLE INTERVENANT 
    ADD CONSTRAINT Relation_12 FOREIGN KEY 
    ( 
     APARTICIPER
    ) 
    REFERENCES APARTICIPE 
    ( 
     APARTICIPER
    ) 
    ON DELETE SET NULL 
;


ALTER TABLE DOCUMENT 
    ADD CONSTRAINT Relation_13 FOREIGN KEY 
    ( 
     APARTICIPER
    ) 
    REFERENCES APARTICIPE 
    ( 
     APARTICIPER
    ) 
    ON DELETE SET NULL 
;


ALTER TABLE PRODUCTEUR 
    ADD CONSTRAINT Relation_14 FOREIGN KEY 
    ( 
     APRODUIT
    ) 
    REFERENCES APRODUIT 
    ( 
     APRODUIT
    ) 
    ON DELETE SET NULL 
;


ALTER TABLE DOCUMENT 
    ADD CONSTRAINT Relation_15 FOREIGN KEY 
    ( 
     APRODUIT
    ) 
    REFERENCES APRODUIT 
    ( 
     APRODUIT
    ) 
    ON DELETE SET NULL 
;


ALTER TABLE DOCUMENT 
    ADD CONSTRAINT Relation_16 FOREIGN KEY 
    ( 
     ESTDANS
    ) 
    REFERENCES ESTDANS 
    ( 
     ESTDANS
    ) 
    ON DELETE SET NULL 
;


ALTER TABLE LIEU 
    ADD CONSTRAINT Relation_17 FOREIGN KEY 
    ( 
     ESTDANS
    ) 
    REFERENCES ESTDANS 
    ( 
     ESTDANS
    ) 
    ON DELETE SET NULL 
;


COMMIT;
    

-- Oracle SQL Developer Data Modeler Summary Report: 
-- 
-- CREATE TABLE                             7
-- CREATE INDEX                             0
-- ALTER TABLE                              6
-- CREATE VIEW                              0
-- CREATE PROCEDURE                         0
-- CREATE TRIGGER                           0
-- CREATE STRUCTURED TYPE                   0
-- CREATE COLLECTION TYPE                   0
-- CREATE CLUSTER                           0
-- CREATE CONTEXT                           0
-- CREATE DATABASE                          0
-- CREATE DIMENSION                         0
-- CREATE DIRECTORY                         0
-- CREATE DISK GROUP                        0
-- CREATE ROLE                              0
-- CREATE ROLLBACK SEGMENT                  0
-- CREATE SEQUENCE                          0
-- CREATE SNAPSHOT                          0
-- CREATE SYNONYM                           0
-- CREATE TABLESPACE                        0
-- CREATE USER                              0
-- 
-- DROP TABLESPACE                          0
-- DROP DATABASE                            0
-- 
-- ERRORS                                   0
-- WARNINGS                                 0

L'erreur
Error

SQL query:
-- Generated by Oracle SQL Developer Data Modeler Version: 2.0.0 Build: 570
-- at: 2009-12-02 18:30:59
-- site: Oracle Database 10g
-- type: Oracle Database 10g
CREATE TABLE APARTICIPE(APARTICIPER NUMBER NOT NULL ,
DOCUMENT NUMBER,
INTERVENANT NUMBER
);


MySQL said:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NUMBER NOT NULL ,

DOCUMENT NUMBER ,
INTERVENANT NUMBER
)' at line 3


Est-ce un problème de versions de mysql qui seraient différentes sous XP et OS X ?

Merci
:zen:
 
euh sans approfondir, si tu as une valeur not null il faut mettre une valeur défaut, non ?
 
@Johannès
J'ai essayé ceci
Bloc de code:
CREATE TABLE APARTICIPE 
    ( 
     APARTICIPER NUMBER  NOT NULL PRIMARY KEY, 
     DOCUMENT NUMBER , 
     INTERVENANT NUMBER 
    ) 
;

et
Bloc de code:
CREATE TABLE APARTICIPE 
    ( 
     APARTICIPER NUMBER(5)  NOT NULL , 
     DOCUMENT NUMBER , 
     INTERVENANT NUMBER 
    ) 
;

qui me retournent tous les deux la même erreur.

@gloup gloup
J'ai installé data modeler pour mac, je peux donc lire mon sql et le ré-exporter en autre chose :
Oracle Database 11g
Oracle Database 10g
Oracle9i
SQL Server 2005
SQL Server 2000
DB2/390 8
DB2/390 7
DB2/UDB 8.1
DB2/UDB 7.1

Sais-tu si dans l'un d'eux seraient acceptés par mysql ? J'ai essayé mais pour l'instant j'en ai pas trop l'impression.

:zen:
 
Genre un fichier texte avec des fins de ligne Windows au lieu de fins de ligne Unix :siffle: Quelques "\r" en trop :siffle:
 
NUMBER en sql ça n'existe pas (oracle connais pas)

soit tu choisis INT(longueur) soit NUMERIC(longueur, nb de décimales) soit un autre type en fonction de la longueur et du type de du contenu

exemple :

Bloc de code:
CREATE TABLE aparticipe 
    ( 
     APARTICIPER INT(5) NOT NULL DEFAULT'', 
     DOCUMENT INT(11) , 
     INTERVENANT INT(11) 
    ) 
;

note : la valeur DEFAULT peut soit rester vide (DEFAULT ' ') soit contenir 0 (DEFAULT '0')

Voir ici : Syntaxes mysql
 
non NUMBER en PL/SQL ca existe, et ce qui a ete generé l' a ete par -> "Generated by Oracle SQL Developer Data Modeler"

Bloc de code:
DECLARE

  i NUMBER;
  j NUMBER(5);
  k NUMBER(5,0);


BEGIN
  i := 1; -- no rounding
  i := 1000; -- no rounding
  i := 10000000; -- no rounding
  i := 100000000000000000000000000; -- no rounding
  i := 100000000000000000000000000.1; -- no rounding
  
  j := 1; -- no rounding
  j := 1.1; -- rounded to 1
  j := 123.1; -- rounded to 123
  j := 123.1234; -- rounded to 123
  j := 123.9999; -- rounded to 124
  j := 12345.123456; -- rounded to 12345

Bloc de code:
type NUMBER is NUMBER_BASE;
subtype FLOAT is NUMBER; -- NUMBER(126)
subtype REAL is FLOAT; -- FLOAT(63)
subtype "DOUBLE PRECISION" is FLOAT;
subtype INTEGER is NUMBER(38,0);
subtype INT is INTEGER;
subtype SMALLINT is NUMBER(38,0);
subtype DECIMAL is NUMBER(38,0);
subtype NUMERIC is DECIMAL;
subtype DEC is DECIMAL;

subtype BINARY_INTEGER is INTEGER range '-2147483647'..2147483647;
subtype NATURAL is BINARY_INTEGER range 0..2147483647;
subtype NATURALN is NATURAL not null;
subtype POSITIVE is BINARY_INTEGER range 1..2147483647;
subtype POSITIVEN is POSITIVE not null;
subtype SIGNTYPE is BINARY_INTEGER range '-1'..1;
penible les guiguis
 
non NUMBER en PL/SQL ca existe, et ce qui a ete generé l' a ete par -> "Generated by Oracle SQL Developer Data Modeler"
penible les guiguis

Merci pour le "pénible"... bravo

j'aurais dû formuler ainsi : NUMBER en mysql ça n'existe pas (phpmyadmin = mysql)

en PL/SQL peut-être, je souligne que j'ai dit : oracle je ne connais pas

n'empêche qu'il veut exécuter la requête avec phpmyadmin et en mysql NUMBER ne passera pas, ça ne fait pas partie des types en mysql ! revoir les synytaxes de create table en mysql

maintenant s'il veut gérer une base de données oracle, peut-être avec squirrel mais pas avec phpmyadmin
 
nous on utilises ca mysql --user=root --password=xxx < file.sql, je serait plutot vexé pour le guigui :p:rateau:, donc je le repete le SQL le plus proche serait un export Windows SQL Server, moyennant quelques ajustements

pour le mal entendant il a utilisé http://www.oracle.com/technology/products/database/datamodeler/index.html

31794b.jpg


donc modelisé ca DB maintenant il veut en exporter la structure pour creer une Base MySQL, il n'a pas envi de travailler avec une base Oracle, il a juste utilisE un Visual Modeler qui n'a pas d'option pour Mysql (un peu fait expres...)
 
T'inquiète, je suis nouveau sur ce forum mais pas nouveau en info, donc je ne veux pas me vexer. soyons cool on a assez de soucis ailleurs.

je suis bien d'accord avec toi sur ce que tu écris sur l'export mais il ne pourra pas utiliser phpmyadmin pour l'exécuter.

exécuter avec phpmyadmin sous OS X, mais il me signale que mon code est mal écrit.


il veut en exporter la structure pour creer une Base MySQL

et en plus NUMBER n'existe pas en mysql d'où l'erreur générée. d'ailleurs sur ta capture d'écran NUMBER n'est pas employé mais INT oui... tient, comme c'est bizarre


sinon pour rester sérieux l'emploi de sql-mode en début de fichier peut peut-être permettre l'utilisation du fichier .sql généré par data modeler. je dis bien peut-être.
se posera peut-être aussi le problème des ansi_quotes.

lien direct vers la doc sql-mode pour oracle

mais on discute tous les deux, qu'en pense tantoillane ?

Bon je dois quitter mais je suis ce fil
 
Bonjour et excusez mon absence,

Tatouille a en effet bien compris ce que je souhaite, mais vu comme il y a débat, je vais vous exposer le problème en entier car peut-être aurez vous une solution plus efficace à m'apporter. Je dois créer (pour mon projet de i2) une base de données de multimédia (films, musiques, jeux,etc) et faire inter-agir un site web php avec la base pour ajouter/modifier/supprimer les entrées. En cours on utilise XP avec oracle 10g, datamodeler, sql developper pour exécuter des commandes, et WAMP comme serveur web. Mais comme c'est pas agréable de travailler sous XP, j'ai installé MAMP pour le serveur php, datamodeler et sql developper pour mac. J'avais l'impression que le mac possédais déjà de quoi utiliser des base sql (on peut installer un livre d'or sur son mac par exemple). Mais je commence à me demander s'il n'y a pas une différence en LE sql et mysql.
J'ai créé un nouvel utilisateur avec phpmyadmin et j'ai essayé de me connecter avec sql developper à une des bases en utilisant cet utilisateur, mais ça ne marche pas, donc je dois ne pas comprendre quelque chose.
J'ai aussi essayé d'installer Oracle 10g 2 pour utiliser simplement les mêmes outils sous les deux systèmes, mais je ne sais pas du tout quoi faire du dossier de 1,35 Go qu'il m'a créé et je commence à m'y perdre un peu. phpmyadmin n'est qu'un outils qui permet de se connecter à des bases de données ?
Oracle est "le système sql" qui permet de pouvoir utiliser du sql ? Il contient aussi un outil comme phpmyadmin qui permet de se connecter à ces bases ? A quoi est-ce que je me connecte quand j'utilise phpmyadmin (ou sqllite) que j'ai obtenus en installant MAMP, le mac peut-il de base utiliser des bases sql sans avoir à installer oracle ?
Pourrais-facilement transférer tout mon travail sous XP si je fais tout sur mac ?

Merci bien de votre patience. Je pense qu'il faut que je me mette les idées claires avant d'essayer un peu tout ce que vous m'avez conseillé.

:zen:
 
Oracle et PL/SQL tatouille te guidera la-dessus

pour un site avec base de données j'utilise php/mysql

phpmyadmin est une interface visuelle pour gérér et accéder aux bases de données mysql, il est utilisé par de nombreux sites web. il ne permet pas la création "graphique" de bases de données. Tu peux néanmoins créer une base et lui ajouter des tables, les remplir avec des fichiers csv, les exporter vers csv, excel, etc...

phpmysql est livré avec mamp.

Pour les créations "graphiques" des bases, il y a de nombreux outils sur windows, un peu moins sur mac.

je suis trop nouveau sur mac pour te conseiller la dessus, je te donne toutefois deux exemples.

- Navicat (cher tout de même)

- Workbench - et là, il y a une version gratuite

ce ne sont que des exemples, je ne connais pas bien mac, je débarque sur cette plateforme mais ça me rappelle beaucoup linux.
 
Oracle et PL/SQL tatouille te guidera la-dessus

Je lui fait confiance :)
phpmyadmin est une interface visuelle pour gérér et accéder aux bases de données mysql, il est utilisé par de nombreux sites web. il ne permet pas la création "graphique" de bases de données. Tu peux néanmoins créer une base et lui ajouter des tables, les remplir avec des fichiers csv, les exporter vers csv, excel, etc...

phpmysql est livré avec mamp.
Ça confirme ce que je pensais, par contre y-a-t-il une différence entre sql, mysql et oracle ?
Pour les créations "graphiques" des bases, il y a de nombreux outils sur windows, un peu moins sur mac.

je suis trop nouveau sur mac pour te conseiller la dessus, je te donne toutefois deux exemples.

- Navicat (cher tout de même)

- Workbench - et là, il y a une version gratuite

ce ne sont que des exemples, je ne connais pas bien mac, je débarque sur cette plateforme mais ça me rappelle beaucoup linux.
:zen: