parseReferentialAction parses a single referential action (CASCADE, SET NULL, etc.)
()
| 309 | |
| 310 | // parseReferentialAction parses a single referential action (CASCADE, SET NULL, etc.) |
| 311 | func (p *Parser) parseReferentialAction() string { |
| 312 | if p.isType(models.TokenTypeCascade) { |
| 313 | p.advance() |
| 314 | return "CASCADE" |
| 315 | } |
| 316 | if p.isType(models.TokenTypeRestrict) { |
| 317 | p.advance() |
| 318 | return "RESTRICT" |
| 319 | } |
| 320 | if p.isType(models.TokenTypeSet) { |
| 321 | p.advance() // Consume SET |
| 322 | if p.isType(models.TokenTypeNull) { |
| 323 | p.advance() |
| 324 | return "SET NULL" |
| 325 | } |
| 326 | if p.isType(models.TokenTypeDefault) { |
| 327 | p.advance() |
| 328 | return "SET DEFAULT" |
| 329 | } |
| 330 | } |
| 331 | if p.isTokenMatch("NO") { |
| 332 | p.advance() // Consume NO |
| 333 | if p.isTokenMatch("ACTION") { |
| 334 | p.advance() |
| 335 | return "NO ACTION" |
| 336 | } |
| 337 | } |
| 338 | return "" |
| 339 | } |
| 340 | |
| 341 | // parseTableConstraint parses a table constraint (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK) |
| 342 | func (p *Parser) parseTableConstraint() (*ast.TableConstraint, error) { |
no test coverage detected