Forward Engineering¶
Wanneer je in MySQL Workbench al je tabellen hebt gemaakt, je hebt alle kolommen voorzien van de juiste datatypes, je hebt tabellen aan elkaar verbonden met relaties en ten slotte heb je de INSERTs ingevuld met data is het tijd om je Database Ontwerp om te gaan zetten in een werkende database.
Je kan dat doen door zelf de SQL-queries te schrijven (wat een goede oefening is voor het tentamen!!!) maar makkelijker is om MySQL Workbench jouw ontwerp automatisch om te laten zetten in SQL en deze te laten uitvoeren in je database.
Hiervoor zit in MySQL Workbench de tool ‘Forward Engineer’:

Deze uitleg neemt je stap-voor-stap mee in hoe je deze tool gebruikt. Let wel goed op, je kan namelijk data uit je database kwijtraken als je niet weet wat je precies doet.
Zorg voordat je deze stappen doorloopt dat het schema van je ontwerp (standaard mydb) wel dezelfde naam heeft als je database.
Stap 1: Verbinden met database¶
Al eerder heb je MySQL Workbench gekoppeld aan je eigen database. In deze eerste stap van de Forward Engineer-tool hoef je deze alleen nog maar te kiezen.

Klik vervolgens op ‘Next’.
Stap 2: Opties¶
Een aantal opties zijn handig om aan te zetten:
- ‘Generate INSERT statements for tables’
- Door deze optie aan te zetten neemt de tool ook je Inserts mee, anders blijven je tabellen leeg.
- ‘DROP objects before each CREATE object’
- De kans is heel groot dat er fouten in je ontwerp zitten en dat je daarom de Forward Engineer tool vaker wilt gebruiken. Echter wanneer je de tool opnieuw gebruikt staat je oude data nog in je database. Door deze optie aan te zetten worden deze eerst verwijderd. (Let op: hierdoor kan je dus data kwijtraken als je handmatig wijzingen hebt gemaakt buiten je ontwerp om!)
Klik vervolgens op ‘Next’.
Stap 3: Objects¶
Meer dan de tabellen gebruiken wij niet, dus de standaard optie van ‘Export MySQL Table Objects’ is voldoende.
Klik vervolgens op ‘Next’.
Stap 4: Review SQL Script¶
Dit is nu de SQL die gegenereerd is op basis van jouw Database Ontwerp en de gekozen opties. Deze kan je nu inzien om te kijken of het klopt, opslaan naar een bestand of het kopieΓ«ren en plakken naar een andere plek.
Wij gaan echter nog een stap verder, we willen dat deze SQL code direct in onze database wordt uitgevoerd. Wanneer je doorklikt zal dit direct gebeuren.
Klik hiervoor op ‘Next’.
Stap 5: Commit Progress¶
Wanneer alles goed gegaan is krijg je het volgende scherm te zien:

De kans is echter groot dat er ook van alles mis is gegaan tijdens het uitvoeren. MySQL Workbench heeft namelijk nooit gecontroleerd of alle handelingen die je hebt uitgevoerd ook daadwerkelijk mogen. Nu we je ontwerp daadwerkelijk in een database proberen te zetten kan het daarom misgaan.
Veel voorkomende problemen:
| Foutmelding | Oplossing |
|---|---|
| Foutmelding: ‘Access denied for user .... to database mydb’. | Je moet de naam van je schema veranderen van mydb in de naam van je eigen database. Je eigen databasenaam is zgebruikersnaam. |
| Foutmelding: ‘Unknown column … in field list’ | Controleer of je bij de Inserts wel de juiste data hebt ingevuld, een int(11) verwacht een getal, een DATE verwacht een datum (in format: YYYY-MM-DD), etc… |
| Foutmelding: ‘Column … cannot be null’ | Controleer of je bij de Inserts wel daadwerkelijk alle kolommen hebt ingevuld die verplicht (NOT NULL) zijn. |
| Foutmelding: ‘Cannot add or update a child row: a foreign key constraint fails’ | Vaak heeft deze fout te maken met waardes in de Inserts die niet voldoen aan de relaties. Bijvoorbeeld je verwijst met een Foreign Key naar een rij die helemaal niet bestaat, |