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)
-
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
-
MySQLエラーエラー1099(HY000):テーブルがREADロックでロックされており、更新できません
LOCK TABLESクエリを削除するには、UNLOCKTABLESを使用する必要があります。 テーブルを作成しましょう- mysql> create table demo6 −> ( −> country_name varchar(100 −> ) −> ); Query OK, 0 rows affected (1.51 sec) 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 mysql> insert into demo6 values('US'); Que