foreignKey method
void
foreignKey(})
Add a foreign key to a column
Implementation
void foreignKey(String name,
{String? reference,
bool nullable = false,
bool unique = false,
String? defaultValue,
OnDelete onDelete = OnDelete.restrict}) {
var q = "$name INTEGER";
if (unique) {
q += " UNIQUE";
}
if (!nullable) {
q += " NOT NULL";
}
if (defaultValue != null) {
q += " DEFAULT $defaultValue";
}
String fk;
fk = " FOREIGN KEY ($name)\n";
reference ??= name;
fk += " REFERENCES $reference(id)\n";
fk += " ON DELETE ";
switch (onDelete) {
case OnDelete.cascade:
fk += "CASCADE";
break;
case OnDelete.setNull:
fk += "SET NULL";
break;
case OnDelete.setDefault:
fk += "SET DEFAULT";
break;
default:
fk += "RESTRICT";
}
_columns.add(q);
_fkConstraints.add(fk);
_columnsData.add(DbColumn(
name: name,
unique: unique,
nullable: nullable,
defaultValue: defaultValue,
type: DbColumnType.integer,
isForeignKey: true,
reference: reference,
onDelete: onDelete));
}