Не могу выполнить Mysql-запрос на Python, который находится на строке, потому что обратная связь / серьезная причина конфликта - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть этот запрос:

CREATE TABLE IF NOT EXISTS `configuration` (
  `key` varchar(128) NOT NULL,
  `value` varchar(1024) NOT NULL,
  PRIMARY KEY (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Он корректно выполняется в рабочей среде и в онлайн-интерпретаторах mysql, у меня есть программа на python, которая при выполнении того же запроса запускает синтаксическую ошибку.Запрос находится в строке, которая отформатирована следующим образом:

Query = """
CREATE TABLE IF NOT EXISTS `configuration` (
      `key` varchar(128) NOT NULL,
      `value` varchar(1024) NOT NULL,
      PRIMARY KEY (`key`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    """

Ранее у меня была такая же проблема с этим запросом:

CREATE TABLE IF NOT EXISTS `logs` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `order_id` int(11) NULL,
  `level` int(11) NOT NULL,
  `source` varchar(100) NOT NULL,
  `message` text NOT NULL,
  `detail` longtext NULL,
  PRIMARY KEY (`id`),
  KEY `idx_logs_timestamp` (`timestamp` DESC),
  KEY `idx_logs_level` (`level`),
  KEY `idx_logs_order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

После удаления обратных галочек "` "запрос работалправильно.Но если я уберу галочки из первого запроса, синтаксическая ошибка останется.

Вот код, который я использую при выполнении запроса на python:

def Execute_Query_On_Database(database,query):
     server_database= config.Read_Property("DATABASES","Server_Database")
     user= config.Read_Property("SSH","SSH_Username")
     password= config.Read_Property("SSH","SSH_Password")
     operation=  "mysql -u "+user+" -h "+server_database+" -p "+database+" --password="+password+"  -e \""+query+"\""
     result= ssh.execute_ssh_command(operation)
     return result

print (Execute_Query_On_Database("database_default",Query))

1 Ответ

0 голосов
/ 27 февраля 2019

Итак, я использовал pyMySQL для запуска файла SQL с запросом.Не удалось найти причину сбоя запроса в коде.

...