MySQL
 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)

  1. 列の値を置き換えるMySQLクエリ

    まずテーブルを作成しましょう- mysql> create table DemoTable (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    Score int ); Query OK, 0 rows affected (0.45 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable(Score) values(56); Query OK, 1 row affected (0.24 sec)

  2. MySQLクエリの列にユーザー定義の値を追加しますか?

    まずテーブルを作成しましょう- mysql> create table DemoTable1847      (      GameStatus ENUM('PENDING','COMPLETED','CANCELLED')      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1847