Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Creare tabella SQL

  1. #1
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110

    Creare tabella SQL

    CREATE TABLE `rel_cat_news` (
    `id` int(11) NOT NULL auto_increment,
    `id_cat` int(11) NOT NULL default '0',
    `id_news` int(11) NOT NULL default '0',
    `id_cat_pad` int(11) NOT NULL default '0',
    PRIMARY KEY (id,id_cat),
    FOREIGN KEY(id_cat) REFERENCES rel_cat_news(id_cat_pad)
    ON DELETE CASCADE
    ON UPDATE SET NULL
    ) TYPE=InnoDB ROW_FORMAT=FIXED;

    non sò se è possibile... vorrei che al cancellare di una riga si cancellino anche quelle associate
    ho provato a creare una tabella con questa caratteristica ma non mi riesce... in cosa sbaglio?

  2. #2
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    è possibile usare l'integrità referenziale di una tabella su se stessa?

    cioè se la tabella contiene qst dati:

    id, id_cat, id_news, id_cat_pad
    1, 1, 0, 0
    2, 2, 0, 1
    3, 3, 0, 2

    è possibile cancellando la riga con id 1, cancellare anche le altre?

    in pratica l'esempio riprende l'sql di prima

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    non mi risulta.

  4. #4
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    con qsto sql, mysql non mi dà errore ma non mi fà nemmeno caricare i dati...

    CREATE TABLE `rel_cat_news` (
    `id` int(11) NOT NULL auto_increment,
    `id_cat` int(11) NOT NULL default '0',
    `id_news` int(11) NOT NULL default '0',
    `id_cat_pad` int(11) NOT NULL default '0',
    PRIMARY KEY (`id`),
    UNIQUE KEY `id_cat` (`id_cat`),
    UNIQUE KEY `id_cat_pad` (`id_cat_pad`),
    CONSTRAINT `rel` FOREIGN KEY (`id_cat_pad`) REFERENCES `rel_cat_news` (`id_cat`)
    ) TYPE=InnoDB;

    da che può dipendere?

  5. #5
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    CREATE TABLE `rel_cat_news` (
    `id` int(11) NOT NULL auto_increment,
    `id_cat` int(11) NOT NULL default '0',
    `id_news` int(11) NOT NULL default '0',
    `id_cat_pad` int(11) NOT NULL default '0',
    PRIMARY KEY (`id`),
    KEY `id_cat` (`id_cat`),
    KEY `id_cat_pad` (`id_cat_pad`),
    CONSTRAINT `rel_cat_news_ibfk_1` FOREIGN KEY (`id_cat`) REFERENCES `rel_cat_news` (`id_cat_pad`) ON DELETE CASCADE
    ) TYPE=InnoDB;

    anche riscrivendola così nn dà errore ma come prima non carica i dati...

  6. #6
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    up

  7. #7
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    up

  8. #8
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    CREATE TABLE `categorie` (
    `id` int(11) NOT NULL auto_increment,
    `nome` mediumtext NOT NULL,
    `descrizione` text NOT NULL,
    `id_cat_sup` int(11) NOT NULL default '0',
    PRIMARY KEY (`id`),
    CONSTRAINT `categorie_ibfk_1` FOREIGN KEY (`id`) REFERENCES `rel_cat_news` (`id_cat`) ON DELETE CASCADE
    ) TYPE=InnoDB;

    usando qst sintassi non mi viene segnalato errore... ma quando carico i dati in qst tabella categorie non succede niente metre in "rel_cat_news" viene aggiunto un record vuoto...

  9. #9
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    qst è l'errore che mi dà:
    #1216 - Cannot add or update a child row: a foreign key constraint fails

  10. #10
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    cosa vi è di errato in qst codice sql?
    perchè qnd carico una categoria... non viene caricata? e mi dà qst errore?

    #1216 - Cannot add or update a child row: a foreign key constraint fails

    --
    -- Struttura della tabella `categorie`
    --

    CREATE TABLE categorie (
    id int(11) NOT NULL auto_increment,
    nome mediumtext NOT NULL,
    descrizione text NOT NULL,
    id_cat_sup int(11) NOT NULL default '0',
    PRIMARY KEY (id),
    KEY id_cat_sup (id_cat_sup)
    ) TYPE=InnoDB AUTO_INCREMENT=1 ;


    ALTER TABLE `categorie`
    ADD CONSTRAINT `categorie_ibfk_2` FOREIGN KEY (`id_cat_sup`) REFERENCES `rel_cat_news` (`id_cat_pad`) ON DELETE CASCADE,
    ADD CONSTRAINT `categorie_ibfk_1` FOREIGN KEY (`id`) REFERENCES `rel_cat_news` (`id_cat`) ON DELETE CASCADE;

    --
    -- Struttura della tabella `rel_cat_news`
    --

    CREATE TABLE `rel_cat_news` (
    `id` int(11) NOT NULL auto_increment,
    `id_cat` int(11) NOT NULL default '0',
    `id_news` int(11) NOT NULL default '0',
    `id_cat_pad` int(11) NOT NULL default '0',
    PRIMARY KEY (`id`),
    KEY `id_news` (`id_news`),
    KEY `id_categoria` (`id_cat`),
    KEY `id_cat_pad` (`id_cat_pad`)
    ) TYPE=InnoDB AUTO_INCREMENT=2 ;

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.