Lösen Sie Fragen zur MySQL CREATE TABLE-Syntax
P粉347804896
P粉347804896 2023-09-12 15:19:08
0
2
624

Ich habe versucht, mit dem folgenden Befehl eine Tabelle in MySQL zu erstellen:

CREATE TABLE keys (id INT(10), key VARCHAR(100));

Aber es gibt mir immer eine Fehlermeldung ähnlich dieser:

Fehler 1064 (42000): Es liegt ein Fehler in Ihrer SQL-Syntax vor. Überprüfen Sie das Handbuch für Ihre MySQL-Serverversion auf die Verwendung in der Nähe von „keys (id INT(10), key VARCHAR(100))“ in Zeile 1. Die korrekte Syntax für `

P粉347804896
P粉347804896

Antworte allen(2)
P粉253518620

你应该非常小心地命名表和列,因为你将来可能会面临很多问题。

我建议找到那些不是MySQL保留字的名称。

如果你还想保留这些名称,你应该用反引号将其括起来。

mysql> CREATE TABLE keys (id INT(10), key VARCHAR(100));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'keys (id INT(10), key VARCHAR(100))' at line 1

mysql> CREATE TABLE `keys` (id INT(10), `key` VARCHAR(100));
Query OK, 0 rows affected, 1 warning (0.97 sec)

mysql> show create table keys;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'keys' at line 1
mysql>
mysql>
mysql> show create table `keys`;
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                        |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
| keys  | CREATE TABLE `keys` (
  `id` int DEFAULT NULL,
  `key` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

请注意,在使用表时必须使用反引号

P粉649990163

所以表名keys和字段key都是在Mysql命名空间中保留的。如果您选择一个不同的表名(例如keys_tbl)并将第二个字段重命名为key_id,您的代码将正常工作。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage