Skip to content

Commit 70ea9ad

Browse files
committed
Added Unique Keys
1 parent 3c8c900 commit 70ea9ad

File tree

1 file changed

+19
-0
lines changed
  • src/main/java/me/cobeine/sqlava/connection/database/table

1 file changed

+19
-0
lines changed

src/main/java/me/cobeine/sqlava/connection/database/table/Table.java

+19
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.jetbrains.annotations.NotNull;
66

77
import java.util.ArrayList;
8+
import java.util.HashMap;
89
import java.util.List;
910

1011
/**
@@ -17,11 +18,13 @@ public abstract class Table {
1718
private final List<Column> columns;
1819
private String primaryKey;
1920
private final List<ForeignKey> foreignKeys;
21+
private final HashMap<String,String[]> uniqueKeys;
2022

2123
public Table(String name) {
2224
this.name = name;
2325
this.columns = new ArrayList<>();
2426
this.foreignKeys = new ArrayList<>();
27+
this.uniqueKeys = new HashMap<>();
2528
}
2629

2730
public void addColumn(@NotNull Column column) {
@@ -33,6 +36,9 @@ private ForeignKey foreignKey(String key) {
3336
foreignKeys.add(entry);
3437
return entry;
3538
}
39+
public void uniqueKey(String key, String... columns) {
40+
uniqueKeys.put(key, columns);
41+
}
3642

3743
public void addColumns(@NotNull Column... columns) {
3844
for (Column column : columns) {
@@ -71,6 +77,19 @@ public String toString() {
7177
}
7278
}
7379
}
80+
if (!uniqueKeys.isEmpty()) {
81+
for (String key : uniqueKeys.keySet()) {
82+
String[] columns = uniqueKeys.get(key);
83+
builder.append(", UNIQUE KEY `").append(key).append("` (");
84+
for (int i = 0; i < columns.length; i++) {
85+
builder.append("`").append(columns[i]).append("`");
86+
if (i < columns.length - 1) {
87+
builder.append(", ");
88+
}
89+
}
90+
builder.append(")");
91+
}
92+
}
7493
builder.append(")");
7594
return builder.toString();
7695
}

0 commit comments

Comments
 (0)