Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL의 정수 열에 양의 정수 제약 조건을 추가하시겠습니까?

<시간/>

음수를 입력할 수 없기 때문에 unsigned를 사용해야 합니다.

구문은 다음과 같습니다.

CREATE TABLE yourTableName
(
   yourColumnName INT UNSIGNED
);

개념을 이해하기 위해 테이블을 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table OnlyPositiveValue
   - > (
   - > Marks int UNSIGNED
   - > );
Query OK, 0 rows affected (0.58 sec)

테이블에 데이터를 삽입하기 전에 아래 쿼리를 사용하십시오.

쿼리는 다음과 같습니다

mysql> SET @@SESSION.sql_mode = 'STRICT_TRANS_TABLES';
Query OK, 0 rows affected, 1 warning (0.00 sec)

이제 INSERT 명령에 음수를 추가하면 다음 오류가 표시됩니다.

mysql> insert into OnlyPositiveValue values(-10);
ERROR 1264 (22003): Out of range value for column 'Marks' at row 1
mysql> insert into OnlyPositiveValue values(-100);
ERROR 1264 (22003): Out of range value for column 'Marks' at row 1

양수를 삽입합시다.

쿼리는 다음과 같습니다

mysql> insert into OnlyPositiveValue values(0);
Query OK, 1 row affected (0.17 sec)
mysql> insert into OnlyPositiveValue values(10);
Query OK, 1 row affected (0.14 sec)
mysql> insert into OnlyPositiveValue values(100);
Query OK, 1 row affected (0.11 sec)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다.

쿼리는 다음과 같습니다

mysql> select *from OnlyPositiveValue;

다음은 양수를 표시하는 출력입니다.

+-------+
| Marks |
+-------+
|     0 |
|    10 |
|   100 |
+-------+
3 rows in set (0.00 sec)