目前我正在制作一个ASP.NET网站。在Global.asax中,如果一些表不存在,我有初始化这些表的代码。代码的初始化blog_post和booked_dates部分可以正确执行并创建表,但是初始化image_info不能。它们非常相似,我找不到MySQL语法的错误所在。
错误消息:
您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,以了解要在第1行使用的正确语法
//init blog_post
using (MySqlCommand cmd = new MySqlCommand("CREATE TABLE IF NOT EXISTS `blog_post` (" +
"`id` INT AUTO_INCREMENT," +
"`header` VARCHAR(255)," +
"`bbcode` TEXT," +
"`author` VARCHAR(255)," +
"`time_posted` DATETIME, " +
"PRIMARY KEY(id));", con))
{
cmd.ExecuteNonQuery();
cmd.Dispose();
}
//init booked_dates
using (MySqlCommand cmd = new MySqlCommand("CREATE TABLE IF NOT EXISTS `booked_dates` (" +
"`id` INT AUTO_INCREMENT," +
"`author` VARCHAR(255)," +
"`start_time` DATETIME," +
"`end_time` DATETIME," +
"`time_booked` DATETIME, " +
"PRIMARY KEY(id));", con))
{
cmd.ExecuteNonQuery();
cmd.Dispose();
}
//init image_info
using (MySqlCommand cmd = new MySqlCommand("CREATE TABLE IF NOT EXISTS `image_info` (" +
"`id` INT AUTO_INCREMENT," +
"`author` VARCHAR(255)," +
"`file_name` TEXT," +
"`title` TEXT," +
"`album` TEXT, " +
"'description' TEXT, " +
"PRIMARY KEY(id));", con))
{
cmd.ExecuteNonQuery();
cmd.Dispose();
}谢谢你事先的帮助!
发布于 2013-03-15 20:06:59
您在description '前后使用了不同的引号,应该是另一个
`description`或者,由于description不是保留字,如果需要,您可以省略引号。您的查询应该是:
using (MySqlCommand cmd = new MySqlCommand("CREATE TABLE IF NOT EXISTS `image_info` (" +
"`id` INT AUTO_INCREMENT," +
"`author` VARCHAR(255)," +
"`file_name` TEXT," +
"`title` TEXT," +
"`album` TEXT, " +
"`description` TEXT, " +
"PRIMARY KEY(id));", con))发布于 2013-03-15 20:07:57
您在create table代码中没有使用backticks。
"'description' TEXT, "应该是
"`description` TEXT, "发布于 2013-03-15 20:07:07
应该使用backticks而不是single quote
"'description' TEXT, " +应该是
"`description` TEXT, " +https://stackoverflow.com/questions/15431989
复制相似问题