我目前正在建立一个ASP.NET网站。在Global.asax中,我具有用于初始化某些表(如果它们不存在)的代码。代码的init blog_post和booked_dates部分可以正确执行并创建表,但init image_info则不能。它们非常相似,我找不到MySQL语法出了什么问题。
错误信息:
您的SQL语法有误。检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的“描述” TEXT,PRIMARY KEY(id))附近使用
//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();
}
预先感谢您的帮助!
最佳答案
您在描述'
周围使用了不同的引号,应该是另一组
`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))
关于c# - MySQL-当类似的CREATE TABLE没有出现时,CREATE TABLE引发错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15431989/