2016-11-14 3 views
0

が存在しない場合は、節に問題があります。私のCREATE TABLEのMySQL構文で何が問題になっていますか?

私はC#アプリケーションを使用してMySQLテーブルを作成していますが、DBへの接続が確立されているので問題ありません。

MySql.Data.MySqlClient.MySqlException(0x80004005が):私は、クエリを実行しようとすると、

私は取得していますエラーは例外ですが、私はメッセージを取得するあなたのSQLでエラー を持っています構文;デバッグモードではライン1

で「ではないが(価格 VARCHAR、時間VARCHAR)に存在する場合は」、イミディエイトウィンドウが私のコマンドを示し近くで使用する権利構文についてあなたのMySQL サーバーのバージョンに対応するマニュアルを確認してください文字列:

しないが、私が見てきた例から(価格VARCHAR、時間 VARCHAR)

を存在する場合、表ticks_14_11_2016をCREATE、これは適切な構文でなければなりません。私は当分の制約とキーを心配していないです、私は実行するクエリを必要とする...

また、ここで私は、文字列を構築し、クエリを実行するために使用するC#のコードは次のとおりです。

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

+0

に応じて、あなたのロジックを使用してください?? 'time VARCHAR'作成時に大きな問題があります – RiggsFolly

+0

これは日時でなければならないことを知っていますが、今は文字列を持っているだけでうれしいです。手元の問題は列の種類のためだとは思わない –

答えて

3

あなたはトンを持っています彼if not existsは間違った場所にあり、また、varcharタイプには必須の長さ引数が必要です。

A修正版は次のようになります。

CREATE TABLE IF NOT EXISTS ticks_XXXXX (price VARCHAR(10), time VARCHAR(10)); 

変更あなたのために適切であるものは何でもまでの長さ。

詳細については、reference manualを参照してください。

+3

http://www.funnydogsite.com/pictures/Very_Happy_Dog.jpg –

+1

スピードデリバリーのためのハイ5 ..私は他の2分笑ってありがとう –

0

データベースにテーブルが存在するかどうかを確認する方法もあります。

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 

関連する問題