Tworzenie tabel a ograniczenia dla kolumn

0

Czy jeśli np. mam w tabeli kolumny: imie,nazwisko,wiek.
To zawsze stosować dla imion i nazwisko ograniczenie NULL w trakcie tworzenia tabeli oraz ograniczenie CHECK >= dla wieku?

0

Zależy od Twoich potrzeb..Nie ma zawsze, nigdy. Jeżeli sprawdzasz po stronie klienta, to tutaj duplikujesz to działanie.

0

Czasami samemu można coś przeoczyć i nie wstawić w daną kolumnę wartośći. Więc nie wiem czy to się wstawia czy nie w takich przypadkach?

I jeszcze takie pytanie stworzyłem tabelę:

CREATE TABLE NazwiskaIWiek
(
Nazwisko nvarchar(50),
Wiek int CHECK (Wiek >= 0)
);

I mimo to wstawiłem takie dane do tabeli:

INSERT INTO NazwiskaIWiek(Nawisko, Wiek)
VALUES ('Wiesław', -22);

Może mi ktoś wyjaśnić czemu ograniczenie check nie działa?

0

Bo MySQL nie zapimplementowało Checka ;-).

0

Ja zazwyczaj ustawiam check na poziomie programu. Jest to o tyle wygodniejsze, że w przypadku aplikacji desktopowej mogę wyświetlić okienko z listą błędów i ustawić się na polu edycyjnym odnoszącym się do 1-szego błędu.

0

w mysqlu można to ustawić?

Czy w mysqlu można jakoś usunąć primary i foreign key?

0

Już ktoś ci odpisał, że MySQL NIE ZAIMPLEMENTOWAŁ Check. Sprawdza tylko, czy check jest poprawny semantycznie. Jak to ładnie napisali w dokumentacji: "The CHECK clause is parsed but ignored by all storage engines."
A PRIMARY i FOREIGN KEY można usunąć. Również szukaj w dokumentacji w okolicach ALTER TABLE

1 użytkowników online, w tym zalogowanych: 0, gości: 1