具有@符号的列名

noj0wjuj  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(367)

我正在使用c代码执行一个动态生成的mysql查询。引发异常:

CREATE TABLE dump ("@employee_OID" VARCHAR(50));

“{”您的sql语法有错误;检查与您的mariadb服务器版本相对应的手册,以了解在第1行“}”处“\”@employee\u oid\”varchar(50))'附近使用的正确语法
我不能从列名中跳过“@”符号。
手动使用mysql workbench,我可以在执行以下查询之后执行它。

SET sql_mode='ANSI_QUOTES';

以下是我能够生成的代码:

MySqlConnection conn = null;
MySqlCommand cmd = null;
string mySQLConnectionString = ConfigurationManager.AppSettings["MySQLAutomationServerConnectionString"];
//Dynamically getting generated using some other code
string sqlQueryString = "CREATE TABLE dump ("@employee_OID" VARCHAR(50));";

try
{
    conn = new MySqlConnection(mySQLConnectionString);
    conn.Open();
    cmd = new MySqlCommand(sqlQueryString, conn);
    executionResultStatus = cmd.ExecuteNonQuery();

}
catch (MySqlException ex)
{
    Console.WriteLine("MySQL Exception: " + ex.Message.ToString());
}

我尝试执行“set sql_mode='ansi_quotes';”在执行此代码之前使用代码执行查询,它不起作用。我该怎么办?

ghhkc1vu

ghhkc1vu1#

将命令更改为

string sqlQueryString = "CREATE TABLE dump (`@employee_OID` VARCHAR(50));";

注意问题名称前后有两个反勾号(alt+096)
这将允许引擎忽略用于标识参数的字符@

相关问题