Python sql查询的sql语法错误

Python sql查询的sql语法错误,python,mysql,sql,Python,Mysql,Sql,我正在运行一个sql,我得到了错误 insert into pfam_uniprot (UniProtKB-AC, UniProtKB-ID, GeneID, RefSeq, GI, PDB, GO, IPI, UniRef100, UniRef90, UniRef50, UniParc, PIR, NCBI-taxon, MIM, UniGene, PubMed, EMBL, EMBL-CDS, Ensemble, Ensemble-TRS, Ensemble-PRO, Additional_

我正在运行一个sql,我得到了错误

insert into pfam_uniprot (UniProtKB-AC, UniProtKB-ID, GeneID, RefSeq, GI, PDB, GO, IPI, UniRef100, UniRef90, UniRef50, UniParc, PIR, NCBI-taxon, MIM, UniGene, PubMed, EMBL, EMBL-CDS, Ensemble, Ensemble-TRS, Ensemble-PRO, Additional_PubMed) values ("Q6GZX4", "001R_FRG3G", "2947773", "YP_031579.1", "81941549,47060116,49237298", "", "GO:0006355,GO:0046782,GO:0006351", "", "UniRef100_Q6GZX4", "UniRef90_Q6GZX4", "UniRef50_Q6GZX4", "UPI00003B0FD4", "", "654924", "", "", "15165820", "AY548484", "AAT09660.1", "", "", "", "")
我得到的错误如下:

(1064, "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 '-AC, UniProtKB-ID, GeneID, RefSeq, GI, PDB, GO, IPI, UniRef100, UniRef90, UniRef' at line 1")I am not able to understand. Can anyone let me know.

谢谢

删除第一个

insert into pfam_uniprot values (
                         ^^^^^^

变量名中不能有连字符。你需要逃离他们。我会对变量名使用双引号,对字符串值使用单引号:

insert into pfam_uniprot values ("UniProtKB-AC", "UniProtKB-ID", GeneID, RefSeq, GI, PDB, GO,
                                 IPI, UniRef100, UniRef90, UniRef50, UniParc, PIR, "NCBI-taxon",
                                 MIM, UniGene, PubMed, EMBL, "EMBL-CDS", Ensemble, "Ensemble-TRS",
                                 "Ensemble-PRO", Additional_PubMed
                                )
    values ('Q6GZX4', '001R_FRG3G', '2947773', 'YP_031579.1', '81941549,47060116,49237298', '',
            'GO:0006355,GO:0046782,GO:0006351', '', 'UniRef100_Q6GZX4', 'UniRef90_Q6GZX4',
            'UniRef50_Q6GZX4', 'UPI00003B0FD4', '', '654924', '', '', '15165820', 'AY548484',
            'AAT09660.1', '', '', '', '');

删除后,它还会显示:(1064,“您的SQL语法有错误;请检查与MySQL服务器版本对应的手册,以获得正确的语法,以便在第1行使用near'-AC、UniProtKB ID、GeneID、RefSeq、GI、PDB、GO、IPI、UniRef100、UniRef90、UniRef')@sam,字段名是否正确?它们之间包含
-
。可能需要使用倒勾(`)或引号(“or')对其进行转义。请注意,MySQL(错误地)将双引号字符串视为字符串文字而不是架构名称。您可以通过在
sql\u模式下启用
ANSI\u QUOTES
标志来修复此问题,或者使用倒勾而不是双引号(但这与其他数据库不兼容)。