예제 #1
0
        private static void ParseAddForeignKey(Parser parser, PgTable table)
        {
            var columnNames = new List <string>();

            parser.Expect("(");

            while (!parser.ExpectOptional(")"))
            {
                columnNames.Add(ParserUtils.GetObjectName(parser.ParseIdentifier()));
                if (parser.ExpectOptional(")"))
                {
                    break;
                }

                parser.Expect(",");
            }

            var constraintName = ParserUtils.GenerateName(table.Name + "_", columnNames, "_fkey");
            var constraint     = new PgConstraint(constraintName);

            table.AddConstraint(constraint);
            constraint.Definition = parser.GetExpression();
            constraint.TableName  = table.Name;
        }