0

This is my sql query for MySQL:

DROP DATABASE IF EXISTS java_proj;

CREATE DATABASE java_proj 
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;

USE java_proj;

CREATE TABLE Konto(
  idKonto SERIAL PRIMARY KEY, 
  login VARCHAR(14) UNIQUE CHECK(LENGTH(login)>4) NOT NULL,
  haslo VARCHAR(14) CHECK(LENGTH(haslo)>4) NOT NULL,
  data_rejestracji DATE DEFAULT NOW() NOT NULL,
  data_urodzenia DATE NOT NULL,
  imie VARCHAR(30) NOT NULL,
  nazwisko VARCHAR(30) NOT NULL
);

I'm getting error out of nowhere, in the line of login. Error: Syntax error: 'closing parenthesis'

enter image description here

1 Answers1

0

As mentioned in comments MySQL doesn't support CHECK.

But you also have another problem with that query: the DATE field cannot have NOW() as DEFAULT value, you can change it in DATETIME and set CURRENT_TIMESTAMP as default value

Cleaned up your query should probably look like this

CREATE TABLE Konto(
  idKonto SERIAL PRIMARY KEY, 
  login VARCHAR(14) UNIQUE NOT NULL,
  haslo VARCHAR(14) NOT NULL,
  data_rejestracji DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  data_urodzenia DATE NOT NULL,
  imie VARCHAR(30) NOT NULL,
  nazwisko VARCHAR(30) NOT NULL
);

You can read about some workaround to the use instead of CHECK at this link CHECK constraint in MySQL is not working

Community
  • 1
  • 1
Igor S Om
  • 735
  • 3
  • 12