Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Célio A.

[Resolvido] como declarar indices e chave estrangeira

Recommended Posts

Agradecendo ao pessoal do fórum que tem me ajudado muito tenho mais uma duvida. Preciso saber qual a forma correta para declarar índice e chave estrangeira alem de outros atributos como InnoDB.

 

Eu sei SQL, mas não sei a sintaxe para utilizar com php.

 

Minha tabela teste é para criar uma nova tabela com o nome de um evento (campeonato) de Karate com id, nome e data de nascimento e com os campos que serão FK genero_id` (tabela gênero campo id`), faixa_id` (tabela faixa campo id`), entidade_id` (tabela entidade campo id)

 

Esta funcionou:

 

<?php
ini_set( 'display_errors', true );
error_reporting( E_ALL );

$con = mysql_connect("localhost","root","");
mysql_select_db("karate", $con);

$sql = "CREATE TABLE `karatecas`(
 `id` int(10) unsigned NOT NULL auto_increment,
 `nome` varchar(30) NOT NULL,
 `dn` date NOT NULL,
 `genero_id` varchar(2) NOT NULL,
 `faixa_id` char(5) NOT NULL,
 `entidade_id` int(5) NOT NULL,
 PRIMARY KEY  (`id`)
) ";

mysql_query($sql,$con) or die(mysql_error());

@mysql_close();
?>

 

Abaixo a forma que eu estou tentando e não funfou:

<?php
ini_set( 'display_errors', true );
error_reporting( E_ALL );

$con = mysql_connect("localhost","root","");
mysql_select_db("karate", $con);

$sql = "CREATE TABLE `karatecas`(
 `id` int(10) unsigned NOT NULL auto_increment,
 `nome` varchar(30) NOT NULL,
 `dn` date NOT NULL,
 `genero_id` varchar(2) NOT NULL,
 `faixa_id` char(5) NOT NULL,
 `entidade_id` int(5) NOT NULL,
 PRIMARY KEY  (`id`)
 KEY `genero_id` (`genero_id`)
 KEY `faixa_id` (`faixa_id`)
 KEY `entidade_id` (`entidade_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1";

$sql_alter = " ALTER TABLE `karatecas`
 ADD CONSTRAINT `karatecas` FOREIGN KEY (`genero_id`) REFERENCES `genero` (`id`),
 ADD CONSTRAINT `karatecas` FOREIGN KEY (`faixa_id`) REFERENCES `faixa` (`id`),
 ADD CONSTRAINT `karatecas` FOREIGN KEY (`entidade_id`) REFERENCES `entidade` (`id`)";


mysql_query($sql,$con,$sql_alter) or die(mysql_error());

@mysql_close();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ops!!! ja resolvi!

 

<?php
ini_set( 'display_errors', true );
error_reporting( E_ALL );

$con = mysql_connect("localhost","root","");
mysql_select_db("karate", $con);

$sql = "CREATE TABLE `karatecas-3`(
 `id` int(10) unsigned NOT NULL auto_increment,
 `nome` varchar(30) NOT NULL,
 `dn` date NOT NULL,
 `genero_id` varchar(2) NOT NULL,
 `faixa_id` char(5) NOT NULL,
 `entidade_id` int(5) NOT NULL,
 INDEX genero_id (genero_id),
 INDEX faixa_id (faixa_id),
 INDEX entidade_id (entidade_id),
 FOREIGN KEY (genero_id) REFERENCES genero(id),
 FOREIGN KEY (faixa_id) REFERENCES faixa(id),
 FOREIGN KEY (entidade_id) REFERENCES entidade(id),
 PRIMARY KEY  (`id`)
) ENGINE=INNODB";

mysql_query($sql,$con) or die(mysql_error());

@mysql_close();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.