Вместо input.nextLine()
используйте input.next()
, что должно решить проблему.
Измененный код:
public static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
System.out.print("Insert a number: ");
int number = input.nextInt();
System.out.print("Text1: ");
String text1 = input.next();
System.out.print("Text2: ");
String text2 = input.next();
}
К сожалению, MySQL не поддерживает ограничения проверки SQL. Поэтому попробуйте использовать enum
вместо
CREATE TABLE IF NOT EXISTS supervisor (
sup_id INT(3) NOT NULL,
sup_name VARCHAR(30) NOT NULL,
gen enum('M','F') NOT NULL,
dep_id INT(4),
PRIMARY KEY (sup_id),
INDEX (dep_id),
FOREIGN KEY (dep_id)
REFERENCES department(dep_id)
ON UPDATE CASCADE ON DELETE RESTRICT
);
MySQL не устанавливает контрольные ограничения.
Это хорошо документированное отклонение от стандарта SQL. (Хотя это неожиданно для непосвященных.)
Если вам нужна база данных MySQL для обеспечения «контрольного ограничения», принудительное исполнение должно быть закодировано в триггер BEFORE INSERT
и BEFORE UPDATE
.
Эта заметка:
Предложение
blockquote>CHECK
разобрано, но игнорируется всеми механизмами хранения.похоронен в Справочное руководство по MySQL в синтаксисе
CREATE TABLE
.Ссылка: https://dev.mysql.com/doc/refman/5.5/en/create-table.html
ПРЕДУПРЕЖДЕНИЕ О ENUM
ENUM
не ограничивает «недействительные» значения от вставки; недопустимое значение переводится в строку нулевой длины, выдается предупреждение, но это не ошибка.Демонстрация:
CREATE TABLE foo (gen ENUM('M','F')) INSERT INTO foo (gen) VALUES ('x') -- Warning Code : 1265 -- Data truncated for column 'gen' at row 1 SELECT gen, CHAR_LENGTH(gen) FROM foo; -- gen CHAR_LENGTH(gen) -- --- ---------------- -- 0