Guia de Bases de Dades: INSERT en un esquema més gran (Chinook)
Com abordar aquest problema
Practiques INSERT en una base de dades amb moltes taules. La dificultat no és la sintaxi, sinó trobar la taula i les columnes correctes a l'esquema i respectar les claus primàries i foranes. Cada pregunta és una sola sentència INSERT.
La sintaxi que necessites
INSERT INTO taula (id_columna, columna_text, id_altra_taula)
VALUES (numero, 'text', numero_existent)
- La llista de columnes ha de fer servir els noms exactes de l'esquema (per exemple,
ArtistId, noId). - Els valors van en el mateix ordre que les columnes.
- Les claus primàries (
...Id) són números i no es poden repetir. - Una clau forana ha d'apuntar a una fila que ja existeixi a l'altra taula.
Pregunta per pregunta
Pregunta 1. Una taula petita, de només dues columnes. Mira l'esquema per veure com es diuen exactament. L'identificador és un número; el nom, un text.
Pregunta 2. El mateix patró en una altra taula. Assegura't que escrius a la taula de gèneres i no a una altra amb un nom semblant.
Pregunta 3. Aquesta taula té una clau forana cap als artistes. L'enunciat et diu a quin artista pertany l'àlbum, i aquest artista ja existeix a la base de dades original. Recorda que cada pregunta es corregeix per separat sobre la base de dades original: no comptis amb el que has inserit en una pregunta anterior.
Un exemple semblant
Un tipus de fitxer nou a la taula MediaType:
INSERT INTO MediaType (MediaTypeId, Name)
VALUES (50, 'Vinil digitalitzat')
Un àlbum inventat d'un altre artista existent:
INSERT INTO Album (AlbumId, Title, ArtistId)
VALUES (999, 'Recull de proves', 2)
Paranys habituals:
- Equivocar-se de nom de columna o de taula (hi ha moltes taules semblants): revisa l'esquema.
- Escriure els identificadors entre cometes:
'30'és un text, no el número 30. - Fer servir un identificador que ja existeix: la clau primària no ho permet.
- Posar una clau forana que no correspon a cap fila de l'altra taula.