sql >> Databasteknik >  >> RDS >> Oracle

skapa tabell med välj fackförening har inga begränsningar

Använd select ... as ... för att skapa en tabell aldrig kopieringsbegränsningar. Om du vill att den nya tabellen ska ärva begränsningar från de ursprungliga tabellerna måste du skapa de nya begränsningarna manuellt.

Som @Davek påpekar, not null begränsningar kommer att kopieras från en enda tabell select ... as ... . Jag antar att det beror på att de både är kolumnattribut och begränsningar. Men när kolumnen har mer än en källa är det rimligt att Oracle inte skulle försöka tillämpa den begränsningen.

Som svar på följdfrågan "skulle det vara möjligt att ge tableC samma begränsningar antingen från tableA eller tableB , efter en CTA?":

Naturligtvis är det möjligt, men det finns inget enskilt kommando för att göra det. Du kan skriva en procedur som använde dynamisk SQL för att kopiera begränsningarna. Men såvida du inte vill automatisera detta beteende, kommer det i allmänhet att vara lättare att extrahera DDL med en IDE och ändra tabellnamnet.




  1. Hur förhindrar man dubbletter av användarnamn när folk registrerar sig?

  2. MySQL LEFT JOIN 3 bord

  3. SQLSTATE[22007]:Ogiltigt datetime-format:1292 Felaktigt datetime-värde:'2019-03-31 01:52:25'

  4. Hur får man automatiska meddelanden om ändringar i tabeller?