visitTableConstraint method

  1. @override
void visitTableConstraint(
  1. TableConstraint e,
  2. void arg
)
override

Implementation

@override
void visitTableConstraint(TableConstraint e, void arg) {
  if (e.name != null) {
    keyword(TokenType.constraint);
    identifier(e.name!);
  }

  if (e is KeyClause) {
    if (e.isPrimaryKey) {
      keyword(TokenType.primary);
      keyword(TokenType.key);
    } else {
      keyword(TokenType.unique);
    }

    symbol('(');
    _join(e.columns, ',');
    symbol(')');
    _conflictClause(e.onConflict);
  } else if (e is CheckTable) {
    keyword(TokenType.check);
    symbol('(');
    visit(e.expression, arg);
    symbol(')');
  } else if (e is ForeignKeyTableConstraint) {
    keyword(TokenType.foreign);
    keyword(TokenType.key);
    symbol('(');
    _join(e.columns, ',');
    symbol(')');
    visit(e.clause, arg);
  }
}