Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: tworzenie tabelu z wymuszonym ciągiem znaków
Forum PHP.pl > Forum > Bazy danych > MySQL
djszaki
witam, czy można w mysql wymusić przy tworzeniu tabeli aby do kolumny np kod pocztowy można było wstawić tylko kod w formacie np xx-xxx gdzie x oznacza liczbę
wiem, że są wyrażenia regularne które póżniej mogą sprawdzić, poprawić itp. ale czy da się odrazu zabezpieczyć kolumnę przed wprowadzeniem nieprawidłowego ciągu

jak robię
create table dane (
kodPocztowy text REGEXP '[0-9][0-9]-[0-9][0-9][0-9]'
)

to nie działa smile.gif
Pyton_000
Ale to w mysql 8 dopiero
viking
I tak cud że w końcu łaskawie dodali.
djszaki
albo nie umiem albo nie wiem
zrobiłem coś takiego

CREATE TABLE t5
(
id INT CHECK (id > 10),
CONSTRAINT id CHECK (id > 10)
);

lub

CREATE TABLE t5
(
id INT CHECK (id > 10),

);

i tak i tak mogę dalej wprowadzać liczby i mniejsze od 10 i większe co robie nie tak ?

viking
Jaka wersja bazy? W przypadku wcześniejszych jest pomijane.
djszaki
Najnowsza

jakies pomysly czemu to zezwala na wprowadzenie liczb nie spełniająych warunku ?
viking
  1. INSERT INTO `t5` (`id`) VALUES (5);
  2. /* Błąd SQL (4025): CONSTRAINT `id` failed for `t5` */
  3.  
  4. INSERT INTO `t5` (`id`) VALUES (11);
  5. /* Zmodyfikowane wiersze: 1 Znalezionych wierszy: 0 Ostrzeżenia: 0 Czas przetwarzania 1 zapytanie: 0,016 sec. */


Pokaż SELECT version();
djszaki
'8.0.15'

na tej wersji normalnie mi dodaje
Pyton_000
Kod
Prior to MySQL 8.0.16,...
djszaki
ja mam wersję https://dev.mysql.com/downloads/windows/installer/8.0.html

8.0.15 Community
viking
Jak to nie robi różnicy możesz zainstalować mariadb.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.