C# 我的createtablemysql语法有什么问题?
我在CREATE IF NOT EXISTS子句中遇到了一些问题 我正在使用一个C#应用程序创建一个MySQL表,与DB的连接已经建立,所以这不是问题 我得到的错误是一个异常。当我尝试执行查询时,我得到以下消息: MySql.Data.MySqlClient.MySqlException(0x80004005):您有一个错误 在SQL语法中;检查与您的MySQL对应的手册 服务器版本,如果不存在,则使用near'的正确语法(价格 第1行的VARCHAR,time VARCHAR)' 在调试模式下,即时窗口将我的命令字符串显示为: 如果不存在,则创建表ticks_14_11_2016(价格变量、时间 瓦查尔) 从我看到的示例来看,这应该是正确的语法。我暂时不担心约束和键,我只需要执行查询 另外,下面是我用来构建字符串和执行查询的C代码:C# 我的createtablemysql语法有什么问题?,c#,mysql,sql,create-table,C#,Mysql,Sql,Create Table,我在CREATE IF NOT EXISTS子句中遇到了一些问题 我正在使用一个C#应用程序创建一个MySQL表,与DB的连接已经建立,所以这不是问题 我得到的错误是一个异常。当我尝试执行查询时,我得到以下消息: MySql.Data.MySqlClient.MySqlException(0x80004005):您有一个错误 在SQL语法中;检查与您的MySQL对应的手册 服务器版本,如果不存在,则使用near'的正确语法(价格 第1行的VARCHAR,time VARCHAR)' 在调试模式下
string tableName = "ticks_" + getTodayString();
if (databaseClient.IsConnect()) {
string tableString = "CREATE TABLE " + tableName +
" IF NOT EXISTS" +
"(price VARCHAR, " +
"time VARCHAR)";
try
{
var command = databaseClient.Connection.CreateCommand();
command.CommandText = tableString;
command.ExecuteNonQuery();
} catch (Exception e)
{
Console.WriteLine(e);
}
}
变量databaseClient的成员是MySQLConnection对象
另外,我的服务器版本是:5.6.28-76.1如果
不存在,则位于错误的位置,而且varchar
类型需要一个强制长度参数
更正版本应为:
CREATE TABLE IF NOT EXISTS ticks_XXXXX (price VARCHAR(10), time VARCHAR(10));
将长度更改为适合您的长度
有关详细信息,请参见。如果不存在,则位于错误的位置,而且varchar
类型需要强制的长度参数
更正版本应为:
CREATE TABLE IF NOT EXISTS ticks_XXXXX (price VARCHAR(10), time VARCHAR(10));
将长度更改为适合您的长度
有关更多信息,请参阅。您还有其他方法来检查数据库中是否存在表
IF OBJECT_ID(N'dbo.ticks_14_11_2016', N'U') IS NOT NULL
BEGIN
------Exists
END
IF EXISTS(SELECT 1 FROM sys.Objects WHERE Object_id =
OBJECT_ID(N'dbo.ticks_14_11_2016') AND Type = N'U')
BEGIN
------Exists
END
IF EXISTS(SELECT 1 FROM sys.Tables WHERE Name = N'ticks_14_11_2016 ' AND Type = N'U')
BEGIN
----Exists
END
IF OBJECT_ID('ticks_14_11_2016') IS NOT NULL
BEGIN
-----Exists
END
相应地使用您的逻辑您还有其他方法来检查数据库中是否存在表
IF OBJECT_ID(N'dbo.ticks_14_11_2016', N'U') IS NOT NULL
BEGIN
------Exists
END
IF EXISTS(SELECT 1 FROM sys.Objects WHERE Object_id =
OBJECT_ID(N'dbo.ticks_14_11_2016') AND Type = N'U')
BEGIN
------Exists
END
IF EXISTS(SELECT 1 FROM sys.Tables WHERE Name = N'ticks_14_11_2016 ' AND Type = N'U')
BEGIN
----Exists
END
IF OBJECT_ID('ticks_14_11_2016') IS NOT NULL
BEGIN
-----Exists
END
相应地使用您的逻辑time VARCHAR
making中有一个主要的woops是的,我知道它应该是一个日期/时间,但现在我很高兴有一个字符串。我不认为手头的问题是因为列类型time VARCHAR
making中有一个主要的woops是的,我知道它应该是一个日期/时间,但现在我很高兴有一个字符串。我不认为眼前的问题是因为快速交货的列类型是H 5。。再过两分钟我就不能接受你的回答了,哈哈,非常感谢你这么快就给了我五分。。再过两分钟我就不能接受你的回答了哈哈,太谢谢你了