• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

MYSQL błąd 42601 praca domowa

+1 głos
51 wizyt
pytanie zadane 27 maja w SQL, bazy danych przez ANONIM2137 Początkujący (320 p.)
edycja 27 maja przez ANONIM2137

Dzień dobry mam problem pracą domową. Mianowicie wyskakuje mi błąd. 42601 Niżej przesyłam kod. Tutaj masz pełny komunikat:

DROP TABLE IF EXISTS miasto CASCADE;
CREATE TABLE miasto (
id_miasta serial NOT NULL,
nazwa_miasta VARCHAR(50) NOT NULL DEFAULT 'SANDOMIERZ',
kod_pocztowy VARCHAR(7) NOT NULL,
id_panstwa int not null,
CONSTRAINT miasto_pk PRIMARY KEY (id_miasta),
CONSTRAINT miasto_fk FOREIGN KEY (id_panstwa) REFERENCES (id_panstwa)
);

 

1
komentarz 27 maja przez MarioG8 Maniak (53,790 p.)
pokaż proszę pełny komunikat błędu, który wypluwa konsola.
komentarz 27 maja przez MarioG8 Maniak (53,790 p.)

@ANONIM2137,

linia numer 6

id_panstwa int not null

powinno być ?

id_panstwa int NOT NULL

komentarz 27 maja przez ANONIM2137 Początkujący (320 p.)
powinno lecz nie pomaga

1 odpowiedź

+1 głos
odpowiedź 27 maja przez Wiciorny Mędrzec (155,400 p.)
edycja 27 maja przez Wiciorny

DEFAULT to wartość, która zostanie wstawiona w przypadku braku jawnej wartości w instrukcji wstawiania / aktualizowania. Załóżmy, że Twój DDL nie ma ograniczenia NOT NULL, problem wynika z tego - że kolumna nie będzie nigdy NOT NULL bo jeśli nie zostanie wprowadzona wartość od użytkownika, to DEFULT zawsze WYKONUJE SIĘ PRZED SPRAWDZENIEM NOT NULL.
 

id_miasta serial NOT NULL,

jeśli robisz serial, to nie robisz NOT NULL  bo 
SERIAL to alias dla BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.

Tworzysz FOREIGN KEY  pamiętaj żę tabela do której się ODWOŁUJESZ musi już istnieć wcześniej. 

REFERENCES (id_panstwa) - tu masz błąd? nie wskazałeś tabeli :) 
REFERENCES NAZWA_TABELI(id_panstwa)

 

 

Składnia

Ograniczenie w jednym polu:

CONSTRAINT nazwa {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES tabelaobca [(poleobce1, poleobce2)]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]}

Ograniczenie w wielu polach:

CONSTRAINT nazwa
{PRIMARY KEY (klucz_podstawowy1[, klucz_podstawowy2 [, ...]]) |
UNIQUE (klucz_unikatowy1[, klucz_unikatowy2 [, ...]]) |
NOT NULL (pole_niepuste1[, pole_niepuste2 [, ...]]) |
FOREIGN KEY [NO INDEX] (odw1[, odw2 [, ...]]) REFERENCES tabelaobca [(pole_tabeli_obcej1 [, pole_tabeli_obcej2 [, ...]])]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]}

Podobne pytania

0 głosów
0 odpowiedzi 51 wizyt
pytanie zadane 27 maja w Java przez ANONIM2137 Początkujący (320 p.)
+1 głos
2 odpowiedzi 1,938 wizyt
pytanie zadane 1 maja 2015 w SQL, bazy danych przez ArturB Mądrala (6,060 p.)
0 głosów
1 odpowiedź 416 wizyt
Porady nie od parady
Forum posiada swój własny serwer Discord, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

84,132 zapytań

132,902 odpowiedzi

293,920 komentarzy

55,556 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...