/// <summary> /// Listener for Unique Key detection /// </summary> /// <param name="context"></param> public override void EnterUniqueKeyTableConstraint([NotNull] UniqueKeyTableConstraintContext context) { base.EnterUniqueKeyTableConstraint(context); // unique key var definition = MySqlKeyDefinition.ExtractUniqueKey(context); TableDefinition.AddUniqueKey(definition); // map UniqueKey and existing Column reference definition.AddUniqueKeyReferenceOnColumn(TableDefinition.Columns); }
/// <summary> /// Listener for Index Index detection /// </summary> /// <remarks> /// override method <see cref="EnterIndexColumnNames"/> includes PK and secondary key and it not contains index name. Therefore let's drill down declaration. /// </remarks> /// <param name="context"></param> public override void EnterIndexDeclaration([NotNull] IndexDeclarationContext context) { base.EnterIndexDeclaration(context); // index (secondary key) var definition = MySqlKeyDefinition.ExtractIndexKey(context); TableDefinition.AddIndexKey(definition); // map IndexKey and existing Column reference definition.AddIndexKeyReferenceOnColumn(TableDefinition.Columns); }
/// <summary> /// Listener for Primary Key detection /// </summary> /// <param name="context"></param> public override void EnterPrimaryKeyTableConstraint([NotNull] PrimaryKeyTableConstraintContext context) { base.EnterPrimaryKeyTableConstraint(context); // primary key (pk) var definition = MySqlKeyDefinition.ExtractPrimaryKey(context); TableDefinition.PrimaryKey = definition; // map PrimaryKey and existing Column reference definition.AddPrimaryKeyReferenceOnColumn(TableDefinition.Columns); }