Package com.alibaba.druid.sql.dialect.mysql.ast

Examples of com.alibaba.druid.sql.dialect.mysql.ast.MysqlForeignKey


    public MySqlForeignKey parseForeignKey() {
        accept(Token.FOREIGN);
        accept(Token.KEY);

        MySqlForeignKey fk = new MySqlForeignKey();

        accept(Token.LPAREN);
        this.names(fk.getReferencingColumns());
        accept(Token.RPAREN);

        accept(Token.REFERENCES);

        fk.setReferencedTableName(this.name());

        accept(Token.LPAREN);
        this.names(fk.getReferencedColumns());
        accept(Token.RPAREN);
        return fk;
    }
View Full Code Here


                    } else if (lexer.token() == (Token.KEY)) {
                        stmt.getTableElementList().add(parseConstraint());
                    } else if (lexer.token() == (Token.PRIMARY)) {
                        stmt.getTableElementList().add(parseConstraint());
                    } else if (lexer.token() == (Token.FOREIGN)) {
                        MySqlForeignKey fk = this.getExprParser().parseForeignKey();
                        stmt.getTableElementList().add(fk);
                    } else if (lexer.token() == Token.CHECK) {
                        lexer.nextToken();
                        SQLCheck check = new SQLCheck();
                        accept(Token.LPAREN);
View Full Code Here

                            SQLAlterTableAddPrimaryKey item = new SQLAlterTableAddPrimaryKey();
                            item.setPrimaryKey(primaryKey);
                            stmt.getItems().add(item);
                        } else if (lexer.token() == Token.FOREIGN) {
                            MySqlForeignKey fk = this.getExprParser().parseForeignKey();
                            fk.setName(constraintName);

                            SQLAlterTableAddForeignKey item = new SQLAlterTableAddForeignKey(fk);
                            stmt.getItems().add(item);
                        } else {
                            throw new ParserException("TODO " + lexer.token() + " " + lexer.stringVal());
View Full Code Here

                            SQLAlterTableAddPrimaryKey item = new SQLAlterTableAddPrimaryKey();
                            item.setPrimaryKey(primaryKey);
                            stmt.getItems().add(item);
                        } else if (lexer.token() == Token.FOREIGN) {
                            MySqlForeignKey fk = this.getExprParser().parseForeignKey();
                            fk.setName(constraintName);

                            SQLAlterTableAddForeignKey item = new SQLAlterTableAddForeignKey(fk);
                            stmt.getItems().add(item);
                        } else {
                            throw new ParserException("TODO " + lexer.token() + " " + lexer.stringVal());
View Full Code Here

    public MySqlForeignKey parseForeignKey() {
        accept(Token.FOREIGN);
        accept(Token.KEY);

        MySqlForeignKey fk = new MySqlForeignKey();

        accept(Token.LPAREN);
        this.names(fk.getReferencingColumns());
        accept(Token.RPAREN);

        accept(Token.REFERENCES);

        fk.setReferencedTableName(this.name());

        accept(Token.LPAREN);
        this.names(fk.getReferencedColumns());
        accept(Token.RPAREN);
        return fk;
    }
View Full Code Here

                    } else if (lexer.token() == (Token.KEY)) {
                        stmt.getTableElementList().add(parseConstraint());
                    } else if (lexer.token() == (Token.PRIMARY)) {
                        stmt.getTableElementList().add(parseConstraint());
                    } else if (lexer.token() == (Token.FOREIGN)) {
                        MySqlForeignKey fk = this.getExprParser().parseForeignKey();
                        stmt.getTableElementList().add(fk);
                    } else if (lexer.token() == Token.CHECK) {
                        lexer.nextToken();
                        SQLCheck check = new SQLCheck();
                        accept(Token.LPAREN);
View Full Code Here

                            SQLAlterTableAddPrimaryKey item = new SQLAlterTableAddPrimaryKey();
                            item.setPrimaryKey(primaryKey);
                            stmt.getItems().add(item);
                        } else if (lexer.token() == Token.FOREIGN) {
                            MySqlForeignKey fk = this.getExprParser().parseForeignKey();
                            fk.setName(constraintName);

                            SQLAlterTableAddForeignKey item = new SQLAlterTableAddForeignKey(fk);
                            stmt.getItems().add(item);
                        } else {
                            throw new ParserException("TODO " + lexer.token() + " " + lexer.stringVal());
View Full Code Here

   
    public MySqlForeignKey parseForeignKey() {
        accept(Token.FOREIGN);
        accept(Token.KEY);
       
        MySqlForeignKey fk = new MySqlForeignKey();
       
        accept(Token.LPAREN);
        this.names(fk.getReferencingColumns());
        accept(Token.RPAREN);
       
        accept(Token.REFERENCES);
       
        fk.setReferencedTableName(this.name());
       
        accept(Token.LPAREN);
        this.names(fk.getReferencedColumns());
        accept(Token.RPAREN);
        return fk;
    }
View Full Code Here

                    stmt.getTableElementList().add(parseConstraint());
                } else if (lexer.token() == (Token.FOREIGN)) {
                    lexer.nextToken();
                    accept(Token.KEY);
                   
                    MySqlForeignKey fk = new MySqlForeignKey();
                   
                    accept(Token.LPAREN);
                    this.exprParser.names(fk.getReferencingColumns());
                    accept(Token.RPAREN);
                   
                    accept(Token.REFERENCES);
                   
                    fk.setReferencedTableName(this.exprParser.name());
                   
                    accept(Token.LPAREN);
                    this.exprParser.names(fk.getReferencedColumns());
                    accept(Token.RPAREN);

                    stmt.getTableElementList().add(fk);
                } else if (lexer.token() == Token.CHECK) {
                    lexer.nextToken();
View Full Code Here

    public MysqlForeignKey parseForeignKey() {
        accept(Token.FOREIGN);
        accept(Token.KEY);

        MysqlForeignKey fk = new MysqlForeignKey();

        if (lexer.token() != Token.LPAREN) {
            SQLName indexName = name();
            fk.setIndexName(indexName);
        }

        accept(Token.LPAREN);
        this.names(fk.getReferencingColumns());
        accept(Token.RPAREN);

        accept(Token.REFERENCES);

        fk.setReferencedTableName(this.name());

        accept(Token.LPAREN);
        this.names(fk.getReferencedColumns());
        accept(Token.RPAREN);

        if (identifierEquals("MATCH")) {
            if (identifierEquals("FULL")) {
                fk.setReferenceMatch(Match.FULL);
            } else if (identifierEquals("PARTIAL")) {
                fk.setReferenceMatch(Match.PARTIAL);
            } else if (identifierEquals("SIMPLE")) {
                fk.setReferenceMatch(Match.SIMPLE);
            }
        }

        if (lexer.token() == Token.ON) {
            lexer.nextToken();
            if (lexer.token() == Token.DELETE) {
                fk.setReferenceOn(On.DELETE);
            } else if (lexer.token() == Token.UPDATE) {
                fk.setReferenceOn(On.UPDATE);
            } else {
                throw new ParserException("syntax error, expect DELETE or UPDATE, actual " + lexer.token() + " "
                                          + lexer.stringVal());
            }
            lexer.nextToken();

            if (lexer.token() == Token.RESTRICT) {
                fk.setReferenceOption(Option.RESTRICT);
            } else if (identifierEquals("CASCADE")) {
                fk.setReferenceOption(Option.CASCADE);
            } else if (lexer.token() == Token.SET) {
                accept(Token.NULL);
                fk.setReferenceOption(Option.SET_NULL);
            } else if (identifierEquals("ON")) {
                lexer.nextToken();
                if (identifierEquals("ACTION")) {
                    fk.setReferenceOption(Option.NO_ACTION);
                } else {
                    throw new ParserException("syntax error, expect ACTION, actual " + lexer.token() + " "
                                              + lexer.stringVal());
                }
            }
View Full Code Here

TOP

Related Classes of com.alibaba.druid.sql.dialect.mysql.ast.MysqlForeignKey

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.