IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

CREATE table en MySQL 5 - erreur en MySQL 4


Sujet :

SQL Procédural MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut CREATE table en MySQL 5 - erreur en MySQL 4
    Bonjour,
    Je souhaite utiliser un code PHP/MySQL afin de suivre la dernière connexion des membres de mon site. Ce code fonctionne très bien avec MySQL 5, mais pas avec MySQL 4 (qui est la version fournie par mon hébergeur, donc pas le choix ...). J'ai cherché dans les docs des deux versions, mais mes essais n'ont pas été fructueux ...

    Voici ce que je souhaite faire :
    1 - Créer une table avec deux champs : id du membre + date/heure de la dernière connexion.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE TABLE `suivi` (`user_id` int(11) NOT NULL default '0',`lastping` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,PRIMARY KEY  (`user_id`));
    2 - En fonction des connexions des membres, mettre à jour l'entrée correspondante dans la table, ou insérer une nouvelle entrée.
    Si l'utilisateur existe déjà dans la table de suivi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE suivi SET lastping = '$datetime_stamp' WHERE user_id = '$user_id'
    Si l'utilisateur n'existe pas encore dans la table de suivi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO suivi VALUES('$user_id', '$datetime_stamp')
    J'ai une erreur dès la création de la table : on me demande de vérifier le manuel de ma version MySQL car il n'est apparemment pas possible d'utiliser current_timestamp avec on update dans un CREATE.

    Est-il possible de faire la même chose en MySQL 4 ? Si oui, comment ?
    D'avance merci pour vos réponses ou les pistes que vous pouvez m'indiquer.

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 906
    Points : 6 031
    Points
    6 031
    Par défaut
    C'est curieux que ça marche en v5:
    Une valeur DEFAULT doit être une constante, ¸a ne peut être une fonction ou une expression. Cela signifie notamment que vous ne pouvez pas donner une valeur par défaut à une colonne de date, le résultat de la fonction NOW() ou CURRENT_DATE.
    http://dev.mysql.com/doc/refman/5.0/...ate-table.html
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 743
    Points
    11 743
    Par défaut
    l'option DEFAULT CURRENT TIMESTAMP est un ajout de la version 4.1 ; elle ne fait que rendre explicite ce qui était déjà le comportement des TIMESTAMP. Il suffit que tu l'enlèves et tout fonctionnera à l'identique.
    cf. http://dev.mysql.com/doc/refman/4.1/...p-pre-4-1.html
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Merci pour vos réponses ! J'ai enlevé l'option current time_stamp et je n'ai plus de problème lors de la création de la table.

    Encore merci et à bientôt !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur avec MySQL (Lost connection to MySQL server)
    Par mikael2235 dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/01/2010, 15h26
  2. Erreurs de syntaxes CREATE TABLE sur Access + MySQL
    Par bmarcesche dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 17/06/2009, 08h56
  3. Réponses: 2
    Dernier message: 29/01/2008, 11h34
  4. [MySQL] Create table : erreur sur foreign key
    Par Naksh-i dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/10/2006, 23h01
  5. [mysql] create table
    Par noOneIsInnocent dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 02/03/2006, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo