(tc *TableConstraint)
| 1492 | } |
| 1493 | |
| 1494 | func tableConstraintSQL(tc *TableConstraint) string { |
| 1495 | sb := getBuilder() |
| 1496 | defer putBuilder(sb) |
| 1497 | if tc.Name != "" { |
| 1498 | sb.WriteString("CONSTRAINT ") |
| 1499 | sb.WriteString(tc.Name) |
| 1500 | sb.WriteString(" ") |
| 1501 | } |
| 1502 | switch tc.Type { |
| 1503 | case "PRIMARY KEY": |
| 1504 | sb.WriteString("PRIMARY KEY (") |
| 1505 | sb.WriteString(strings.Join(tc.Columns, ", ")) |
| 1506 | sb.WriteString(")") |
| 1507 | case "UNIQUE": |
| 1508 | sb.WriteString("UNIQUE (") |
| 1509 | sb.WriteString(strings.Join(tc.Columns, ", ")) |
| 1510 | sb.WriteString(")") |
| 1511 | case "FOREIGN KEY": |
| 1512 | sb.WriteString("FOREIGN KEY (") |
| 1513 | sb.WriteString(strings.Join(tc.Columns, ", ")) |
| 1514 | sb.WriteString(") ") |
| 1515 | if tc.References != nil { |
| 1516 | sb.WriteString(referenceSQL(tc.References)) |
| 1517 | } |
| 1518 | case "CHECK": |
| 1519 | sb.WriteString("CHECK (") |
| 1520 | sb.WriteString(exprSQL(tc.Check)) |
| 1521 | sb.WriteString(")") |
| 1522 | default: |
| 1523 | sb.WriteString(tc.Type) |
| 1524 | } |
| 1525 | return sb.String() |
| 1526 | } |
| 1527 | |
| 1528 | func referenceSQL(r *ReferenceDefinition) string { |
| 1529 | sb := getBuilder() |
no test coverage detected