Insert() public méthode

nothing has been pre-consumed
 'INSERT' ('LOW_PRIORITY'|'DELAYED'|'HIGH_PRIORITY')? 'IGNORE'? 'INTO'? tbname (  'SET' colName ('='|':=') (expr|'DEFAULT') (',' colName ('='|':=') (expr|'DEFAULT')) | '(' (  colName (',' colName)* ')' ( ('VALUES'|'VALUE') value (',' value) | '(' 'SELECT' ...                            
nothing has been pre-consumed
 'INSERT' ('LOW_PRIORITY'|'DELAYED'|'HIGH_PRIORITY')? 'IGNORE'? 'INTO'? tbname (  'SET' colName ('='|':=') (expr|'DEFAULT') (',' colName ('='|':=') (expr|'DEFAULT')) | '(' (  colName (',' colName)* ')' ( ('VALUES'|'VALUE') value (',' value) | '(' 'SELECT' ... ')' | 'SELECT' ... ) | 'SELECT' ... ')' ) |('VALUES'|'VALUE') value  ( ',' value ) | 'SELECT' ... ) ( 'ON' 'DUPLICATE' 'KEY' 'UPDATE' colName ('='|':=') expr ( ',' colName ('='|':=') expr)* )? value := '(' (expr|'DEFAULT') ( ',' (expr|'DEFAULT'))* ')' 
public Insert ( ) : DmlInsertStatement
Résultat Tup.Cobar4Net.Parser.Ast.Stmt.Dml.DmlInsertStatement
Exemple #1
0
        public virtual void TestInsert()
        {
            var sql    = "insErt HIGH_PRIORITY intO test.t1 seT t1.id1=?, id2 := '123'";
            var lexer  = new MySqlLexer(sql);
            var parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
            var insert = parser.Insert();

            parser.Match(MySqlToken.Eof);
            var output = Output2MySql(insert, sql);

            Assert.IsNotNull(insert);
            Assert.AreEqual("INSERT HIGH_PRIORITY INTO test.t1 (t1.id1, id2) VALUES (?, '123')", output);
            sql    = "insErt  IGNORE test.t1 seT t1.id1:=? oN dupLicatE key UPDATE ex.col1=?, col2=12";
            lexer  = new MySqlLexer(sql);
            parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
            insert = parser.Insert();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(insert, sql);
            Assert.AreEqual(
                "INSERT IGNORE INTO test.t1 (t1.id1) VALUES (?) ON DUPLICATE KEY UPDATE ex.col1 = ?, col2 = 12", output);
            sql    = "insErt t1 value (123,?) oN dupLicatE key UPDATE ex.col1=?";
            lexer  = new MySqlLexer(sql);
            parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
            insert = parser.Insert();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(insert, sql);
            Assert.AreEqual("INSERT INTO t1 VALUES (123, ?) ON DUPLICATE KEY UPDATE ex.col1 = ?", output);
            sql    = "insErt LOW_PRIORITY t1 valueS (12e-2,1,2), (?),(default)";
            lexer  = new MySqlLexer(sql);
            parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
            insert = parser.Insert();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(insert, sql);
            Assert.AreEqual("INSERT LOW_PRIORITY INTO t1 VALUES (0.12, 1, 2), (?), (DEFAULT)", output);
            sql    = "insErt LOW_PRIORITY t1 select id from t1";
            lexer  = new MySqlLexer(sql);
            parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
            insert = parser.Insert();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(insert, sql);
            Assert.AreEqual("INSERT LOW_PRIORITY INTO t1 SELECT id FROM t1",
                            output);
            sql    = "insErt delayed t1 select id from t1";
            lexer  = new MySqlLexer(sql);
            parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
            insert = parser.Insert();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(insert, sql);
            Assert.AreEqual("INSERT DELAYED INTO t1 SELECT id FROM t1", output);
            sql    = "insErt LOW_PRIORITY t1 (select id from t1) oN dupLicatE key UPDATE ex.col1=?, col2=12";
            lexer  = new MySqlLexer(sql);
            parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
            insert = parser.Insert();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(insert, sql);
            Assert.AreEqual(
                "INSERT LOW_PRIORITY INTO t1 SELECT id FROM t1 ON DUPLICATE KEY UPDATE ex.col1 = ?, col2 = 12", output);
            sql    = "insErt LOW_PRIORITY t1 (t1.col1) valueS (123),('12''34')";
            lexer  = new MySqlLexer(sql);
            parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
            insert = parser.Insert();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(insert, sql);
            Assert.AreEqual("INSERT LOW_PRIORITY INTO t1 (t1.col1) VALUES (123), ('12\\'34')", output);
            sql    = "insErt LOW_PRIORITY t1 (col1, t1.col2) VALUE (123,'123\\'4') oN dupLicatE key UPDATE ex.col1=?";
            lexer  = new MySqlLexer(sql);
            parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
            insert = parser.Insert();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(insert, sql);
            Assert.AreEqual(
                "INSERT LOW_PRIORITY INTO t1 (col1, t1.col2) VALUES (123, '123\\'4') ON DUPLICATE KEY UPDATE ex.col1 = ?",
                output);
            sql    = "insErt LOW_PRIORITY t1 (col1, t1.col2) select id from t3 oN dupLicatE key UPDATE ex.col1=?";
            lexer  = new MySqlLexer(sql);
            parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
            insert = parser.Insert();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(insert, sql);
            Assert.AreEqual(
                "INSERT LOW_PRIORITY INTO t1 (col1, t1.col2) SELECT id FROM t3 ON DUPLICATE KEY UPDATE ex.col1 = ?",
                output);
            sql    = "insErt LOW_PRIORITY IGNORE intO t1 (col1) ( select id from t3) ";
            lexer  = new MySqlLexer(sql);
            parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
            insert = parser.Insert();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(insert, sql);
            Assert.AreEqual("INSERT LOW_PRIORITY IGNORE INTO t1 (col1) SELECT id FROM t3", output);
        }
 public virtual void TestInsert()
 {
     var sql = "insErt HIGH_PRIORITY intO test.t1 seT t1.id1=?, id2 := '123'";
     var lexer = new MySqlLexer(sql);
     var parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
     var insert = parser.Insert();
     parser.Match(MySqlToken.Eof);
     var output = Output2MySql(insert, sql);
     Assert.IsNotNull(insert);
     Assert.AreEqual("INSERT HIGH_PRIORITY INTO test.t1 (t1.id1, id2) VALUES (?, '123')", output);
     sql = "insErt  IGNORE test.t1 seT t1.id1:=? oN dupLicatE key UPDATE ex.col1=?, col2=12";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
     insert = parser.Insert();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(insert, sql);
     Assert.AreEqual(
         "INSERT IGNORE INTO test.t1 (t1.id1) VALUES (?) ON DUPLICATE KEY UPDATE ex.col1 = ?, col2 = 12", output);
     sql = "insErt t1 value (123,?) oN dupLicatE key UPDATE ex.col1=?";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
     insert = parser.Insert();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(insert, sql);
     Assert.AreEqual("INSERT INTO t1 VALUES (123, ?) ON DUPLICATE KEY UPDATE ex.col1 = ?", output);
     sql = "insErt LOW_PRIORITY t1 valueS (12e-2,1,2), (?),(default)";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
     insert = parser.Insert();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(insert, sql);
     Assert.AreEqual("INSERT LOW_PRIORITY INTO t1 VALUES (0.12, 1, 2), (?), (DEFAULT)", output);
     sql = "insErt LOW_PRIORITY t1 select id from t1";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
     insert = parser.Insert();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(insert, sql);
     Assert.AreEqual("INSERT LOW_PRIORITY INTO t1 SELECT id FROM t1",
         output);
     sql = "insErt delayed t1 select id from t1";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
     insert = parser.Insert();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(insert, sql);
     Assert.AreEqual("INSERT DELAYED INTO t1 SELECT id FROM t1", output);
     sql = "insErt LOW_PRIORITY t1 (select id from t1) oN dupLicatE key UPDATE ex.col1=?, col2=12";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
     insert = parser.Insert();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(insert, sql);
     Assert.AreEqual(
         "INSERT LOW_PRIORITY INTO t1 SELECT id FROM t1 ON DUPLICATE KEY UPDATE ex.col1 = ?, col2 = 12", output);
     sql = "insErt LOW_PRIORITY t1 (t1.col1) valueS (123),('12''34')";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
     insert = parser.Insert();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(insert, sql);
     Assert.AreEqual("INSERT LOW_PRIORITY INTO t1 (t1.col1) VALUES (123), ('12\\'34')", output);
     sql = "insErt LOW_PRIORITY t1 (col1, t1.col2) VALUE (123,'123\\'4') oN dupLicatE key UPDATE ex.col1=?";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
     insert = parser.Insert();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(insert, sql);
     Assert.AreEqual(
         "INSERT LOW_PRIORITY INTO t1 (col1, t1.col2) VALUES (123, '123\\'4') ON DUPLICATE KEY UPDATE ex.col1 = ?",
         output);
     sql = "insErt LOW_PRIORITY t1 (col1, t1.col2) select id from t3 oN dupLicatE key UPDATE ex.col1=?";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
     insert = parser.Insert();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(insert, sql);
     Assert.AreEqual(
         "INSERT LOW_PRIORITY INTO t1 (col1, t1.col2) SELECT id FROM t3 ON DUPLICATE KEY UPDATE ex.col1 = ?",
         output);
     sql = "insErt LOW_PRIORITY IGNORE intO t1 (col1) ( select id from t3) ";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlInsertParser(lexer, new MySqlExprParser(lexer));
     insert = parser.Insert();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(insert, sql);
     Assert.AreEqual("INSERT LOW_PRIORITY IGNORE INTO t1 (col1) SELECT id FROM t3", output);
 }