Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [mysql] errore nella creazione della tabella

    Ciao a tutti,

    sto cercando di creare una tabella con phpMyAdmin per poi usarla con MySQL.

    Purtroppo mi restituisce sempre un errore per me incomprensibile (anche perchè la sintassi per la creazione mi sembra corretta...)

    L'errore è il seguente:

    VVoVe:

    Errore
    query SQL :

    CREATE TABLE `iscritti` (
    `id_num` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
    `cat` TEXT( 20 ) NOT NULL ,
    `reg` TEXT( 20 ) NOT NULL ,
    `nome` TEXT( 30 ) NOT NULL ,
    `pseudo` TEXT( 30 ) NOT NULL ,
    `data_nascita` DATE( 10 ) NOT NULL ,
    `data_enter` DATE( 10 ) NOT NULL ,
    `data_exit` DATE( 10 ) NOT NULL ,
    `num_tel` DECIMAL( 30 ) NOT NULL ,
    `code_page` DECIMAL( 30 ) NOT NULL ,
    `riser_01` TINYINT( 25 ) ,
    `riser_02` TINYINT( 25 ) ,
    INDEX ( `id_num` )
    )

    Messaggio di MySQL:


    You have an error in your SQL syntax near '( 20 ) NOT NULL ,
    `reg` TEXT( 20 ) NOT NULL ,
    `nome` TEXT( 30 ) NOT NULL ,
    `p' at line 3

    VVoVe:

    Qualcuno sa darmi spiegazioni in merito e come risolvere il problema?
    Saluti a tutta la comunity.
    Wallynet

  2. #2
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    - i campi auto_increment devono essere chiave primaria
    - ti conviene usare varchar al posto di text (non è quello che ti da l'errore)
    - DATE è solo YYYY-MM-DD, quindi se vuoi ora, minuti, secondi usa TIMESTAMP (probabilmente è quello l'errore).

  3. #3
    Ho provato a fare come hai detto tu, oltre a non definire la lunghezza dei campi DATE (di default dovrebbero essere settati su 14... e non so il perchè...)

    Ed ha funzionato!!!

    infatti la sintassi corretta che mi ha restituito è:



    CREATE TABLE `iscritti` (
    `id_num` INT(5) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `cat` VARCHAR(20) NOT NULL,
    `reg` VARCHAR(20) NOT NULL,
    `nome` VARCHAR(30) NOT NULL,
    `pseudo` VARCHAR(30) NOT NULL,
    `data_nascita` DATE NOT NULL,
    `data_enter` DATE NOT NULL,
    `data_exit` DATE NOT NULL,
    `num_tel` DECIMAL(15) NOT NULL,
    `code_page` VARCHAR(20) NOT NULL,
    `riser_01` VARCHAR(20) NOT NULL,
    `riser_02` VARCHAR(20) NOT NULL
    );



    Quindi... MOLTE GRAZIE DEI RAPIDI SUGGERIMENTI!!!
    Ciao a tutti.

  4. #4
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Forse confondi il campo DATE con TIMESTAMP o DATETIME.
    Il campo DATE ti ripeto è YYYY-MM-DD non è di default 14.
    Per maggiori info sui campi data e tempo di mysql: http://dev.mysql.com/doc/mysql/en/da...-overview.html

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.