0

이 질문에는 이미 답변이 있습니다.

mysql5.5의 테이블 구조

tablename :

id:
name:
detail:

여기서도 테이블을 변경합니다.

ALTER TABLE tablename MODIFY name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL;

또는

ALTER TABLE `tablename` CHANGE `name` `name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL DEFAULT NOT NULL;

값을 삽입 한 후 :

INSERT INTO `databasename`.`tablename` (`id`, `name`, `detail`) VALUES (NULL, '', 'asdfasfdadsfadsfafd');

쿼리가 성공적으로 실행되었습니다. 테이블에 오류 행이 추가되지 않았습니다.

어떻게 내가 그런 비어 있거나 null을 방지 할 수 있습니다.

문안 인사


1 답변


0

이 시도:

ALTER TABLE tablename 
MODIFY COLUMN name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL CHECK (name <> '');

데모:

mysql> create table tablename(id int(2) not null, something varchar(25) null, primary key(id));
Query OK, 0 rows affected (0.15 sec)
mysql> insert into tablename values(0,'hello');
Query OK, 1 row affected (0.38 sec)

mysql> insert into tablename values(1,'salut');
Query OK, 1 row affected (0.31 sec)

mysql> select * from tablename;
+----+-----------+
| id | something |
+----+-----------+
|  0 | hello     |
|  1 | salut     |
+----+-----------+
2 rows in set (0.00 sec)

자, 나는UPDATE명령:

mysql> ALTER TABLE tablename  MODIFY COLUMN something VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL;
Query OK, 2 rows affected (0.70 sec)
Records: 2  Duplicates: 0  Warnings: 0

나는표준열:

mysql> insert into tablename values(2,'france');
Query OK, 1 row affected (0.29 sec)

그러나 NULL 값을 삽입 할 수 없습니다.

mysql> insert into tablename values(3,NULL);
ERROR 1048 (23000): Column 'something' cannot be null

나는 확실히 확인한다.

mysql> select * from tablename;
+----+-----------+
| id | something |
+----+-----------+
|  0 | hello     |
|  1 | salut     |
|  2 | france    |
+----+-----------+
3 rows in set (0.00 sec)


  • 효과 없음 동일한 결과가 나타납니다. - SAR
  • @abas_rafiq 내가 만든 테스트 테이블에서 명령을 내 렸습니다. 당신은 그것의 일을 아주 잘 볼 수 있습니다 (그것은 NULL 값 삽입을 허용 할 수 없습니다). 그러나 당신의 경우, 나는 왜 그런지 이해하지 못합니다. 나는 당신이 당신의 MySQL 버전을 보여주기를 제안한다. - user3522371
  • (tablename 값 (3, & # 39; & # 39;);에 삽입 해보십시오.) - SAR
  • @abas_rafiq 아니, 당신은 틀리다 :''~과 다르다.NULL때문에''빈 문자열을 의미하므로 물론 허용 할 것입니다. - user3522371
  • 네, 내 삽입에 내가 null이 아니라는 뜻을 설명했다. - SAR

연결된 질문


관련된 질문

최근 질문