MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLエラー1075(42000)を修正:テーブル定義が正しくありません。自動列は1つしか存在できず、キーとして定義する必要があります


このエラーを修正するには、auto_incrementフィールドにPRIMARYKEYを追加する必要があります。このエラーがどのように発生するかを見てみましょう-

ここでは、テーブルを作成していますが、同じエラーが発生します-

mysql> create table DemoTable
(
   StudentId int NOT NULL AUTO_INCREMENT,
   StudentName varchar(40),
   StudentAge int
);
ERROR 1075 (42000) : Incorrect table definition; there can be only one auto column and it must be defined as a key

上記のエラーを解決するには、AUTO_INCREMENTを使用してPRIMARYKEYを追加する必要があります。まずテーブルを作成しましょう-

mysql> create table DemoTable
(
   StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   StudentName varchar(40),
   StudentAge int
);
Query OK, 0 rows affected (1.01 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable(StudentName,StudentAge) values('Chris Brown',19);
Query OK, 1 row affected (0.30 sec)
mysql> insert into DemoTable(StudentName,StudentAge) values('David Miller',18);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable(StudentName,StudentAge) values('John Doe',20);
Query OK, 1 row affected (0.11 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示します:

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+-----------+--------------+------------+
| StudentId | StudentName  | StudentAge |
+-----------+--------------+------------+
|         1 | Chris Brown  |         19 |
|         2 | David Miller |         18 |
|         3 | John Doe     |         20 |
+-----------+--------------+------------+
3 rows in set (0.00 sec)

  1. MySQLでテーブルを更新し、新しい列にイニシャル名のみを表示します

    イニシャルを取得するには、substring_index()とともにleft()の概念を使用します。 テーブルを作成しましょう- mysql> create table demo13 −> ( −> full_name varchar(100), −> short_name varchar(20) −> ); Query OK, 0 rows affected (1.18 sec) 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 mysql> insert into demo13(fu

  2. MySQLエラーエラー1099(HY000):テーブルがREADロックでロックされており、更新できません

    LOCK TABLESクエリを削除するには、UNLO​​CKTABLESを使用する必要があります。 テーブルを作成しましょう- mysql> create table demo6 −> ( −> country_name varchar(100 −> ) −> ); Query OK, 0 rows affected (1.51 sec) 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 mysql> insert into demo6 values('US'); Que