logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

MySQL 5.0 – błąd w definicji tabeli DOKUMENTY, literówka w AUTO_INCREMENT

mesiah 25 Maj 2006 23:27 1602 3
REKLAMA
  • #1 2663962
    mesiah
    Poziom 10  
    Posty: 50
    Ocena: 5
    /*==============================================================*/
    /* Database name: Hotel */
    /* DBMS name: MySQL 5.0 */
    /*==============================================================*/

    DROP TABLE IF EXISTS GOSCIE;
    DROP TABLE IF EXISTS DOKUMENTY;
    DROP TABLE IF EXISTS OBYWATELSTWA;
    DROP TABLE IF EXISTS REZERWACJE;
    DROP TABLE IF EXISTS POKOJE;
    DROP TABLE IF EXISTS Wyposazenie;


    CREATE TABLE OBYWATELSTWA (
    Id INT NOT NULL AUTO_INCREMENT,
    Nazwa VARCHAR(45) NOT NULL,
    Kod VARCHAR(3) NOT NULL,
    CONSTRAINT OBYWATELSTWA_Id_pk PRIMARY KEY(Id)
    );

    CREATE TABLE Wyposazenie(
    Id INT NOT NULL AUTO_INCREMENT,
    TV ENUM( 'Y', 'N') NOT NULL,
    Radio ENUM( 'Y', 'N') NOT NULL,
    Klimatyzacja ENUM( 'Y', 'N') NOT NULL,
    Sejf ENUM( 'Y', 'N') NOT NULL,
    Barek ENUM( 'Y', 'N') NOT NULL,
    CONSTRAINT Wyposazenie_Id_pk PRIMARY KEY(Id)
    );

    CREATE TABLE DOKUMENTY (
    Id INT NOT NULL AUTO_INCREMENT,
    Rodzaj_dokum VARCHAR(45) NOT NULL,
    CONSTRAINT DOKUMENTY_Id_pk PRIMARY KEY(Id)
    );

    CREATE TABLE POKOJE (
    Id INT NOT NULL AUTO_INCREMENT,
    Wyposazenie_Id INT NOT NULL REFERENCES Wyposazenie(Id),
    Nr_pokoju NUMERIC(2) NOT NULL,
    Nr_pietra NUMERIC(1) NOT NULL,
    Ilu_osobowy NUMERIC(1) NOT NULL,
    Cena_za_pokoj NUMERIC(7,2) NOT NULL,
    CONSTRAINT POKOJE_Id_pk PRIMARY KEY (Id)

    );

    CREATE TABLE GOSCIE (
    Id INT NOT NULL AUTO_INCREMENT,
    DOKUMENTY_Id INT NOT NULL REFERENCES DOKUMENTY(DOKUMENTY_Id),
    OBYWATELSTWA_Id INT NOT NULL REFERENCES OBYWATELSTWA(OBYWATELSTWA_Id),
    Nazwisko VARCHAR(45) NOT NULL,
    Imie VARCHAR(20) NOT NULL,
    Data_urodz DATE NOT NULL,
    Plec VARCHAR(10) NOT NULL,
    Nr_dokum VARCHAR(10) NOT NULL,
    Ulica VARCHAR(45) NOT NULL,
    Nr_domu VARCHAR(20) NOT NULL,
    Miejscowość VARCHAR(45) NOT NULL,
    Kod_Pocztowy VARCHAR(6) NOT NULL,
    CONSTRAINT GOSCIE_Id_pk PRIMARY KEY (Id)

    );

    CREATE TABLE REZERWACJE (
    Id INT NOT NULL AUTO_INCREMENT,
    POKOJE_Id INT NOT NULL REFERENCES POKOJE(POKOJE_Id),
    GOSCIE_Id INT NOT NULL REFERENCES GOSCIE(GOSCIE_Id),
    Data_od DATE NOT NULL,
    Data_do DATE NOT NULL,
    CONSTRAINT REZERWACJE_Id_pk PRIMARY KEY (Id)

    );

    ENGINE = InnoDB;

    COMMIT;

    INSERT INTO OBYWATELSTWA VALUES(1, 'Polska' , 'PL');
    INSERT INTO OBYWATELSTWA VALUES(2, 'Niemcy', 'DE' );

    COMMIT;

    INSERT INTO REZERWACJE VALUES(1, '2004-12-21', '2004-12-31');
    INSERT INTO REZERWACJE VALUES(2, '2005-07-14', '2005-07-31');
    I
    COMMIT;

    INSERT INTO GOSCIE VALUES(1, 'Grzegorczyk', 'Adam', '1978-06-07', 'Men', 'AC1586243', 'Mickiewicza', '16', 'Rzepin', '69-110');
    INSERT INTO GOSCIE VALUES(2, 'Kowalczyk', 'Piotr', '1974-05-27', 'Men', 'DD7571986', '', '75', 'Rzepin', '69-110');

    COMMIT;


    INSERT INTO DOKUMENTY VALUES(1, 'Dowod osobisty');
    INSERT INTO DOKUMENTY VALUES(2, 'Paszport');

    COMMIT;


    INSERT INTO POKOJE VALUES(1, '1', '1', '3', '299.00');
    INSERT INTO POKOJE VALUES(2, '3', '12', '2', '199.00');

    COMMIT;

    INSERT INTO Wyposazenie VALUES(1, 'Y', 'Y', 'Y', 'N', 'Y');
    INSERT INTO Wyposazenie VALUES(2, 'Y', 'N', 'Y', 'N', 'Y');

    COMMIT;



    Prosze o pomoc w sprawie powyższej bazy danych. Problem polega na tym ze jak chce ją załadowac to bez problemu wgrywa tabele DOKUMENTY, OBYWATELSTWA i Wyposazenie. Kiedy wgrywa pozostałe tabele to wyskakuje bład "ERROR 1136 (21S01): Column count doesn't match value count at row 1 ". Może ktoś wie gdzie popełniłem błąd i mi pomoże.
  • REKLAMA
  • #2 2664464
    kosmita
    VIP Zasłużony dla elektroda
    Posty: 4103
    Pomógł: 218
    Ocena: 136
    Zwrócony komunikat świadczy o niezgodności listy pól z wartościami. Rekord nie został dodany.
    Nie wypełniasz wszystkich pól które zadeklarowałeś.

    przykład:

    CREATE TABLE REZERWACJE (
    Id INT NOT NULL AUTO_INCREMENT,
    POKOJE_Id INT NOT NULL REFERENCES POKOJE(POKOJE_Id),
    GOSCIE_Id INT NOT NULL REFERENCES GOSCIE(GOSCIE_Id),
    Data_od DATE NOT NULL,
    Data_do DATE NOT NULL,
    CONSTRAINT REZERWACJE_Id_pk PRIMARY KEY (Id)
    
    
    INSERT INTO REZERWACJE VALUES(1, '2004-12-21', '2004-12-31');
    INSERT INTO REZERWACJE VALUES(2, '2005-07-14', '2005-07-31'); 


    deklarujesz 5 pól wypełniasz 3

    spróbuj wprowadzać dane tak:
    INSERT INTO REZERWACJE( Id, Data_od, Data_do ) VALUES ( 1, '2004-12-21', '2004-12-31' ); 
  • REKLAMA
  • #3 2665586
    mesiah
    Poziom 10  
    Posty: 50
    Ocena: 5
    Witam.
    Dzieki za pomoc , ale to nic nie pomogło. Zacząłem inaczej próbować. MAm dwie tabele DOKUMENTY , GOSCIE i jak je połączyć . Spróbowałem tak jak poniżej i cały czas wyskakuje mi taki sam błąd jak wcześniej.

    CREATE TABLE DOKUMENTY (
    Id INT NOT NULL AUTO_INCREMENT,
    Rodzaj VARCHAR(45) NOT NULL,
    CONSTRAINT DOKUMENTY_Id_pk PRIMARY KEY(Id),
    KEY DOKUMENTY_Rodzaj_uk (Rodzaj)
    );

    CREATE TABLE GOSCIE (
    Id INT NOT NULL AUTO_INCREMENT,
    DOKUMENTY_Id INT NOT NULL,
    Nazwisko VARCHAR(45) NOT NULL,
    Imie VARCHAR(20) NOT NULL,
    Data_urodz DATE NOT NULL,
    Plec VARCHAR(10) NOT NULL,
    Nr_dokum VARCHAR(10) NOT NULL,
    Ulica VARCHAR(45) NOT NULL,
    Nr_domu VARCHAR(20) NOT NULL,
    Miejscowość VARCHAR(45) NOT NULL,
    Kod_Pocztowy VARCHAR(6) NOT NULL,
    CONSTRAINT GOSCIE_Id_pk PRIMARY KEY (Id)

    ALTER TABLE GOSCIE ADD CONSTRAINT GOSCIE_DOKUMENTY_Id_fk FOREIGN KEY (DOKUMENTY_Id) REFERENCES DOKUMENTY (Id);

    INSERT INTO GOSCIE VALUES(1, 'Grzegorczyk', 'Adam', '1978-06-07', 'Men', 'AC1586243', 'Mickiewicza', '16', 'Rzepin', '69-110');
    INSERT INTO GOSCIE VALUES(2, 'Kowalczyk', 'Piotr', '1974-05-27', 'Men', 'DD7571986', '', '75', 'Rzepin', '69-110');

    COMMIT;


    INSERT INTO DOKUMENTY VALUES(1, 'Dowod osobisty');
    INSERT INTO DOKUMENTY VALUES(2, 'Paszport');

    COMMIT;
  • #4 2698604
    Dydzio
    Poziom 30  
    Posty: 2015
    Pomógł: 107
    Ocena: 43
    kosmita napisał:
    Zwrócony komunikat świadczy o niezgodności listy pól z wartościami. Rekord nie został dodany.
    Nie wypełniasz wszystkich pól które zadeklarowałeś.

    przykład:

    CREATE TABLE REZERWACJE (
    Id INT NOT NULL AUTO_INCREMENT,
    POKOJE_Id INT NOT NULL REFERENCES POKOJE(POKOJE_Id),
    GOSCIE_Id INT NOT NULL REFERENCES GOSCIE(GOSCIE_Id),
    Data_od DATE NOT NULL,
    Data_do DATE NOT NULL,
    CONSTRAINT REZERWACJE_Id_pk PRIMARY KEY (Id)
    
    
    INSERT INTO REZERWACJE VALUES(1, '2004-12-21', '2004-12-31');
    INSERT INTO REZERWACJE VALUES(2, '2005-07-14', '2005-07-31'); 


    deklarujesz 5 pól wypełniasz 3

    spróbuj wprowadzać dane tak:
    INSERT INTO REZERWACJE( Id, Data_od, Data_do ) VALUES ( 1, '2004-12-21', '2004-12-31' ); 


    pokojeID i gościeID sa NOT NULL!!! Nie mogą być puste!!! Musisz je wypełnić!!!
REKLAMA