Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

MySQL references table

Anoniem
sjemmie
9 antwoorden
  • Hallo, een vraagje

    Ik heb hier twee tabellen in Mysql gemaakt en deze tabellen wil ik afhankelijk van elkaar maken.

    [code:1:518655b3bb]
    create table a (
    a1 integer not null,
    a2 integer not null,
    primary key (a1));

    create table b (
    b1 integer not null,
    b2 integer not null,
    primary key (b1),
    foreign key (b1) references a (b1)
    ) type = innoDB;
    [/code:1:518655b3bb]

    Ik heb expres geen MyIsam gebruikt want dat schijnt datgene wat ik wil toch niet te ondersteunen. Alleen met InnoDB werkt het ook niet. In tabel B kan ik werkelijk alles kwijt terwijl het overeen moet komen wat er in tabel A zit. En MyISAM kom dan weer automatisch inde plaats van de ingetikte InnoDB terug. Ik zit bij een Hoster btw.
    Hoe gaat dit te werk ?

    alvast thx.
  • Ik geloof dat ik beter m'n hoster kan mailen om het in te schakelen of iets dergelijks.

    Andere vraag, hoe geef je in een tabel in mysql aan dat je een grens wilt hebben tijdens het invoeren van de gegevens in een atribuut. Bijvoorbeeld, bij het invoeren van cijfers dat het getal tussen 1.0 en 10.0 in moet zitten ?
  • Even heel snel naar dit korte stukje code gekeken.
    Volgens mij moet je in ieder geval refereren naar een kolom in tabel A.
    je refereert nu naar een kolom in tabel B.
    dus: foreign key (b1) references a (a1)

    Kijk verder eens op:
    http://www.mysql.com/doc/en/InnoDB_foreign_key_constraints.html

    Aangeven van grenzen doe je niet op kolom-niveau, maar je checkt dit tijdens(/voor/na) het invoeren van de waarden
  • klein foutje idd, maar kan je alleen tabellen aan elkaar linken met innoDB ?
    Ik kan het dus niet want ik zie innodb niet staan op m'n mysql tabel type bij m'n hoster
  • Fijn is dat, ik heb een hoster die dat innodb niet ff wil installeren. is het zooooooooooooooooooooooooooon moeite ??? :o
  • [quote:4fa8ab5e29="Financial"]Aangeven van grenzen doe je niet op kolom-niveau, maar je checkt dit tijdens(/voor/na) het invoeren van de waarden[/quote:4fa8ab5e29]
    En waar zijn check constraints dan voor?

    [size=9:4fa8ab5e29](even los van het feit of mysql deze wel of niet ondersteunt)[/size:4fa8ab5e29]
  • [quote:1ab7dfa251="sjemmie"]Fijn is dat, ik heb een hoster die dat innodb niet ff wil installeren. is het zooooooooooooooooooooooooooon moeite ??? :o[/quote:1ab7dfa251]Ja, want dit vergt een andere licentie (en dus een ander kostenplaatje).

    [quote:1ab7dfa251="Annie"]En waar zijn check constraints dan voor?[/quote:1ab7dfa251]Ben daar dan ook benieuwd naar :D
  • [quote:fe0f520c81]En waar zijn check constraints dan voor? [/quote:fe0f520c81]
    Ook ik ben daar erg benieuwd naar.
    De enige functie die ik voor de 'check constraints' ken is de eerder genoemde reference naar een andere tabel/kolom.
    Maar om hier nou de check 1.0 ~ 10.0 in te doen :wink:

    Met enum kun je ook e.e.a. doen, maar ook hier geldt weer dat het raar is om alle toegestane waarden te gaan definieren (1.0, 1.1, 1.2 …. 10.0 en misschien wel in meer detail)

    Dus Annie als je me nog wat bij wilt brengen lees ik dat graag.
    Wellicht heeft MySQL nog (voor mij) verborgen mogelijkheden (of zie ik iets heel basaals over het hoofd)
  • [quote:231bc052cc="Financial"]Ook ik ben daar erg benieuwd naar.[/quote:231bc052cc]ehhh… ik was sarcastisch :wink:


    [quote:231bc052cc="Financial"]De enige functie die ik voor de 'check constraints' ken is de eerder genoemde reference naar een andere tabel/kolom.
    Maar om hier nou de check 1.0 ~ 10.0 in te doen :wink: [/quote:231bc052cc]En dit is de reden dat ik sarcastisch was :wink: , een constraint op een kolom is toch de juiste plek om deze controle te doen? (dat dit alleen in een RDBMS ingesteld kan worden in niet in MySQL is weer een ander probleem :D)

    -Rémy

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.