如何在pymysql中正确创建sql表?

问题描述 投票:0回答:1
import pymysql.cursors

from config import host, user, password, db_name

try:
    connection = pymysql.connect(
        host=host,
        port=3306,
        user=user,
        password=password,
        database=db_name,
        cursorclass=pymysql.cursors.DictCursor
    )
    try:

        with connection.cursor() as cursor:
            create_table_query = "CREATE TABLE 'user'(id int AUTO_INCREMENT, name varchar(32), password varchar(32), PRIMARY KEY(id);)"
            cursor.execute(create_table_query)
            print("Create")
    finally:
        connection.close()
    print("Success//")
except Exception as ex:
    print("Connecting//")
    print(ex)

请帮忙! 终端: 正在连接// (1064, “您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,了解在 ''user' 附近使用的正确语法(id int AUTO_INCRMENT, name varchar(32), password varchar(32) , PRIMARY KE' 在第 1 行”)

进程已完成,退出代码为 0

进程已完成,退出代码为 0 错误:(1064,“您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,了解在 ''user'(id int AUTO_INCRMENT, name varchar(32), password varchar( 32),第 1 行处的 PRIMARY KE')

python sql mysql pymysql
1个回答
0
投票

如果我们单独检查你的SQL查询,它将是这样的:

CREATE TABLE 'user'
(
   id int AUTO_INCREMENT, 
   name varchar(32), 
   password varchar(32), 
   PRIMARY KEY(id);
)

如您所见,表结构内有分号,而不是整个运算符的结尾。 请尝试这个变体:

CREATE TABLE 'user'(id int AUTO_INCREMENT, name varchar(32), password varchar(32), PRIMARY KEY(id));

我们可以在更好的视野中转移:

CREATE TABLE 'user'
(
   id int AUTO_INCREMENT, 
   name varchar(32), 
   password varchar(32), 
   PRIMARY KEY(id)
);
© www.soinside.com 2019 - 2024. All rights reserved.