erreur dans mon script sql

erreur dans mon script sql - SQL/NoSQL - Programmation

Marsh Posté le 08-09-2005 à 15:02:13    

Code :
  1. CREATE DATABASE db_Abonnements
  2. CREATE TABLE T_TypeUtilisateur (
  3. tu_id INTEGER NOT NULL,
  4. tu_nom VARCHAR ( 255 ) NOT NULL,
  5. T_TypeUtilisateur_ID INTEGER NOT NULL,
  6. T_User_ID INTEGER NOT NULL,
  7. CONSTRAINT PK_T_TypeUtilisateur1 PRIMARY KEY (T_TypeUtilisateur_ID)
  8. )


mysql m'indique qu'il y a une erreur dans ce script mais jene vois pas quoi

Reply

Marsh Posté le 08-09-2005 à 15:02:13   

Reply

Marsh Posté le 08-09-2005 à 15:12:36    

C'est quoi le message d'erreur exact?
Ca serait pas jsute par ce que tu as mis deux requettes d'affilé sans le ";" permettant de dire au programme où commence l'un et où finis l'autre?

Reply

Marsh Posté le 08-09-2005 à 15:45:19    

Citation :

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 'CREATE TABLE T_TypeUtilisateur (
 tu_id INTEGER NOT NULL,
 tu_nom VARCHAR ( 25' at line 3

j'ai mis le ;

Reply

Marsh Posté le 08-09-2005 à 18:26:39    

j'y connais rien en mysql! Mais en oracle c'est du VARCHAR2 ;)

Reply

Marsh Posté le 08-09-2005 à 19:03:22    

Le plus simple est de construire tes commandes SQL petit à petit, et en rajouter au fur et à mesure.
 
(une seule colonne dans la table, puis 2, etc.)

Reply

Marsh Posté le 08-09-2005 à 19:40:10    

uxam a écrit :

Citation :

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 'CREATE TABLE T_TypeUtilisateur (
 tu_id INTEGER NOT NULL,
 tu_nom VARCHAR ( 25' at line 3

j'ai mis le ;

C'est bien ce que je pensais, il te dit qu'il y a un truc bizare juste devant le create situé à la ligne 3. C'est normal vu que le programme utilisé lui a envoyé les deux requettes en une seule fois.
au fait, tu utilises quoi pour lui envoyer les requettes? si ton programme ne gére pas le déliminateur de requette, il faudra toi même dire au programem de faire une requette puis l'autre.

Reply

Marsh Posté le 09-09-2005 à 09:53:18    

j'utilise le query browser de mysql

Reply

Marsh Posté le 09-09-2005 à 10:21:47    

D'aprés mon expérience perso, il ne sait pas séparer les requettes.
Il faut saisir la premiere, l'exécuter, saisir la seconde et l'exécuter à son tour.

Reply

Marsh Posté le 10-09-2005 à 12:00:43    

VARCHAR2 comme dit précédemment :jap:

Reply

Marsh Posté le 10-09-2005 à 12:17:05    

S'il utilise le query browser de mysql, c'est surement pas avec la base de donnée oracle.
Et par expérience de mysql, son erreur n'est pas au niveau du varchar mais au niveau de la séparation des deux requettes.
 
"... near 'CREATE TABLE ..." = prés du create table. Avec mysql, en général, ils indiquent la partie juste aprés l'endroit où l'erreur à été trouvé. Donc, ca donne juste avant le "CREATE TABLE". Donc c'est vraiment la séparation des requettes qui pose probléme et non pas le type de colonne.

Reply

Marsh Posté le 10-09-2005 à 12:17:05   

Reply

Marsh Posté le 12-09-2005 à 09:45:57    

j'ai executé chaque requete l'une après et l'autre et ca marche, seulement quand je clique sur une table pour voir les colonnes ca marque "could not fetch column"

Reply

Marsh Posté le 12-09-2005 à 10:26:15    

Code :
  1. CREATE TABLE T_TypeUtilisateur (
  2. tu_id INT NOT NULL,
  3. tu_nom VARCHAR ( 255 ) NOT NULL,
  4. T_TypeUtilisateur_ID INT IDENTITY NOT NULL,
  5. T_User_ID INT NOT NULL,
  6. CONSTRAINT PK_T_TypeUtilisateur15 PRIMARY KEY NONCLUSTERED (T_TypeUtilisateur_ID)
  7. )

j'ai réessayé avec ce script pour sqlserver, mais plusieurs mots clés ne sont pas reconnus par mysql apparemment.

Reply

Marsh Posté le 12-09-2005 à 10:53:20    

au hasard IDENTITY (pas certain à 100% pour celui là) et NONCLUSTERED de non reconus?
Le reste me semble bon.
Comme tu veins de le découvrir, toutes les bases de données ont des extensions au SQL standard. Du coup, il faut adapter une partie des requettes pour éviter les messages d'erreurs.

Reply

Marsh Posté le 12-09-2005 à 19:56:39    

ouep le identity et j'ai du executer 1 requete à la fois  :sleep: mais ca marche cette fois

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed