toInlineSql method

String toInlineSql()

SQLite requires inline constraints for "CREATE TABLE". It does NOT support "ALTER TABLE ADD CONSTRAINT".

Implementation

String toInlineSql() {
  var refColumnsFmt = referenceColumns.map((e) => '"$e"');

  var out =
      'CONSTRAINT "$constraintName" '
      'FOREIGN KEY ("${columns.join(', ')}") '
      'REFERENCES "$referenceTable" (${refColumnsFmt.join(', ')})';

  if (onDelete != null) {
    out += ' ON DELETE ${onDelete!.toSqlAction()}';
  }

  if (onUpdate != null) {
    out += ' ON UPDATE ${onUpdate!.toSqlAction()}';
  }

  return out;
}