mbb 0 Denunciar post Postado Outubro 17, 2007 Pessoal tem como fazer uma foreign keys entre dois bancos mysql? http://forum.imasters.com.br/public/style_emoticons/default/devil.gif Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Outubro 17, 2007 Opa, Cria sim. . .no seu comando alter table, você deve estar no mesmo banco de dados da tabela que será alterada. Sua tabelas devem ser do tipo InnoDB ou BDB e os campos PK e FK devem ter o mesmo tipo de dados. Exemplo: USE banco_2; ALTER TABLE tabela_db_2 ADD FOREIGN KEY (id) REFERENCES banco_1.tabela_db_1(id); Qualquer outra dúvida, continue postando...DEUS abençõe! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
mbb 0 Denunciar post Postado Outubro 17, 2007 mas pq me da esse erro ?Can't create table '.\teste\#sql-80_23.frm' (errno: 150) Compartilhar este post Link para o post Compartilhar em outros sites
mbb 0 Denunciar post Postado Outubro 17, 2007 esquece funcionou! Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Outubro 18, 2007 Opa, Que bom que funfou!! O erro 150 será retornado quando os objetos alterados na instrução alter table add constraint foreign key não forem achados ou quando as tabelas envolvidas não são InnoDB ou mesmo quando os tipos de dados das colunas forem diferentes. Abração, DEUS te abençõe!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
lilialnas 0 Denunciar post Postado Outubro 28, 2008 Olá, sou novata por aqui, mas tenho uma duvida bem parecida. Tenho dois database e duas tabelas que precisam de uma integridade referencial. Segui os passos acima mas deu erro 150 :/ Minhas tabelas são: ava_avaliacao esta no database systeem e nuke_users esta na database nk_users. Gerei um dump pelo sqlyog para que possam me ajudar. --------------------------------------------------------------------------------------------------------------------------------------------------------------- CREATE DATABASE /*!32312 IF NOT EXISTS*/`systeem` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci */; USE `systeem`; /*Table structure for table `ava_avaliacao` */ DROP TABLE IF EXISTS `ava_avaliacao`; CREATE TABLE `ava_avaliacao` ( `AVA_ID` int(10) unsigned NOT NULL auto_increment, `PRO_ID` int(10) unsigned NOT NULL, `AVA_DATA` date default NULL, `USU_ID` int(11) NOT NULL, `USER_NAME` varchar(25) collate latin1_general_ci NOT NULL default '', `USER_SESSION_TIME` int(11) NOT NULL default '0', `KARMA` tinyint(1) default '0', PRIMARY KEY (`AVA_ID`), KEY `AVA_AVALIACAO_FKIndex1` (`PRO_ID`), KEY `NewIndex1` (`USU_ID`), KEY `NewIndex2` (`USER_NAME`), KEY `NewIndex3` (`USER_SESSION_TIME`), KEY `NewIndex4` (`KARMA`), CONSTRAINT `ava_avaliacao_ibfk_1` FOREIGN KEY (`PRO_ID`) REFERENCES `pro_prova` (`PRO_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC; ----------------------------------------------- CREATE DATABASE /*!32312 IF NOT EXISTS*/`nk_users` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci */; USE `nk_users`; /*Table structure for table `nuke_users` */ DROP TABLE IF EXISTS `nuke_users`; CREATE TABLE `nuke_users` ( `user_id` int(11) NOT NULL auto_increment, `gerente` int(1) NOT NULL default '0', `acesso` int(1) NOT NULL default '0', `system_user` varchar(1) collate latin1_general_ci NOT NULL default 'N', `flag` varchar(2) collate latin1_general_ci NOT NULL default '1', `flag2` int(1) NOT NULL, `name` varchar(60) collate latin1_general_ci NOT NULL default '', `username` varchar(25) collate latin1_general_ci NOT NULL default '', `rg` varchar(10) collate latin1_general_ci NOT NULL, `orgao` varchar(10) collate latin1_general_ci NOT NULL, `cpf` varchar(11) collate latin1_general_ci NOT NULL default '', `passaporte` varchar(8) collate latin1_general_ci default NULL, `end` varchar(50) collate latin1_general_ci default NULL, `user_zip` varchar(20) collate latin1_general_ci default NULL, `number` varchar(6) collate latin1_general_ci default NULL, `comp` varchar(6) collate latin1_general_ci default NULL, `bairro` varchar(20) collate latin1_general_ci default NULL, `cidade` varchar(20) collate latin1_general_ci default 'Recife', `uf` varchar(2) collate latin1_general_ci default 'PE', `pais` varchar(20) collate latin1_general_ci default 'Brasil', `user_email` varchar(255) collate latin1_general_ci default NULL, `femail` varchar(255) collate latin1_general_ci default NULL, `find` varchar(50) collate latin1_general_ci default NULL, `time` varchar(50) collate latin1_general_ci NOT NULL, `cargo` varchar(40) collate latin1_general_ci default NULL, `tipoclasse` varchar(30) collate latin1_general_ci NOT NULL, `entradas` varchar(30) collate latin1_general_ci NOT NULL, `validade1` varchar(11) collate latin1_general_ci NOT NULL, `validade2` varchar(11) collate latin1_general_ci NOT NULL, `salario` varchar(10) collate latin1_general_ci NOT NULL, `ramal` varchar(4) collate latin1_general_ci default NULL, `dddres` varchar(3) collate latin1_general_ci default '081', `fone_res` varchar(11) collate latin1_general_ci default NULL, `dddcel` varchar(3) collate latin1_general_ci default '081', `celnumber` varchar(8) collate latin1_general_ci default NULL, `dataDia` varchar(2) collate latin1_general_ci NOT NULL, `dataMes` varchar(15) collate latin1_general_ci NOT NULL, `dataAno` int(4) NOT NULL, `question` varchar(50) collate latin1_general_ci NOT NULL, `reply` varchar(50) collate latin1_general_ci NOT NULL, `user_website` varchar(255) collate latin1_general_ci NOT NULL default '', `user_avatar` varchar(255) collate latin1_general_ci NOT NULL default '/blank.gif', `user_regdate` varchar(20) collate latin1_general_ci NOT NULL default '', `user_icq` varchar(15) collate latin1_general_ci default NULL, `user_occ` varchar(100) collate latin1_general_ci default NULL, `user_from` varchar(100) collate latin1_general_ci default NULL, `user_interests` varchar(150) collate latin1_general_ci NOT NULL default '', `user_sig` varchar(255) collate latin1_general_ci default NULL, `user_viewemail` tinyint(2) default NULL, `user_theme` int(3) default NULL, `user_aim` varchar(18) collate latin1_general_ci default NULL, `user_yim` varchar(25) collate latin1_general_ci default NULL, `user_msnm` varchar(25) collate latin1_general_ci default NULL, `user_password` varchar(40) collate latin1_general_ci NOT NULL default '', `storynum` tinyint(4) NOT NULL default '10', `umode` varchar(10) collate latin1_general_ci NOT NULL default '', `uorder` tinyint(1) NOT NULL default '0', `thold` tinyint(1) NOT NULL default '0', `noscore` tinyint(1) NOT NULL default '0', `bio` tinytext collate latin1_general_ci NOT NULL, `ublockon` tinyint(1) NOT NULL default '0', `ublock` tinytext collate latin1_general_ci NOT NULL, `theme` varchar(255) collate latin1_general_ci NOT NULL default '', `commentmax` int(11) NOT NULL default '4096', `counter` int(11) NOT NULL default '0', `newsletter` int(1) NOT NULL default '0', `user_posts` int(10) NOT NULL default '0', `user_attachsig` int(2) NOT NULL default '0', `user_rank` int(10) NOT NULL default '0', `user_level` int(10) NOT NULL default '1', `broadcast` tinyint(1) NOT NULL default '1', `popmeson` tinyint(1) NOT NULL default '0', `user_active` tinyint(1) default '1', `user_session_time` int(11) NOT NULL default '0', `user_session_page` smallint(5) NOT NULL default '0', `user_lastvisit` int(11) NOT NULL default '0', `user_timezone` tinyint(4) NOT NULL default '10', `user_style` tinyint(4) default NULL, `user_lang` varchar(255) collate latin1_general_ci NOT NULL default 'english', `user_dateformat` varchar(14) collate latin1_general_ci NOT NULL default 'D M d, Y g:i a', `user_new_privmsg` smallint(5) unsigned NOT NULL default '0', `user_unread_privmsg` smallint(5) unsigned NOT NULL default '0', `user_last_privmsg` int(11) NOT NULL default '0', `user_emailtime` int(11) default NULL, `user_allowhtml` tinyint(1) default '1', `user_allowbbcode` tinyint(1) default '1', `user_allowsmile` tinyint(1) default '1', `user_allowavatar` tinyint(1) NOT NULL default '1', `user_allow_pm` tinyint(1) NOT NULL default '1', `user_allow_viewonline` tinyint(1) NOT NULL default '1', `user_notify` tinyint(1) NOT NULL default '0', `user_notify_pm` tinyint(1) NOT NULL default '0', `user_popup_pm` tinyint(1) NOT NULL default '0', `user_avatar_type` tinyint(4) NOT NULL default '3', `user_sig_bbcode_uid` varchar(10) collate latin1_general_ci default NULL, `user_actkey` varchar(32) collate latin1_general_ci default NULL, `user_newpasswd` varchar(32) collate latin1_general_ci default NULL, `points` int(10) default '0', `last_ip` varchar(15) collate latin1_general_ci NOT NULL default '0', `karma` tinyint(1) default '0', `user_status` int(1) default '0', `user_pending` int(11) NOT NULL default '0', `user_date` int(11) NOT NULL default '0', `last_login` int(11) NOT NULL default '0', `user_msg_send` int(1) NOT NULL default '0', `user_msg_subject` varchar(200) collate latin1_general_ci NOT NULL default '', `user_protect_delete` int(1) default '0', `user_protect_edit` int(11) NOT NULL default '0', `help_user_level` int(1) NOT NULL default '1', `nsu` varchar(255) collate latin1_general_ci NOT NULL, `team` int(11) default NULL, `subteam` int(11) default NULL, `user_cargo` int(11) default NULL, PRIMARY KEY (`user_id`), KEY `uid` (`user_id`), KEY `uname` (`username`), KEY `user_session_time` (`user_session_time`), KEY `karma` (`karma`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; ------------------------------------------------------------------------------------------------------------------------------------------------------ --entao executei ------------------------------------------------------------------------------------------------------------------------------------------------------ USE systeem; ALTER TABLE ava_avaliacao ADD FOREIGN KEY (USU_ID, USER_NAME, USER_SESSION_TIME, KARMA ) REFERENCES nk_users.nuke_users(user_id, username, user_session_time, karma); ------------------------------------------------------------------------------------------------------------------------------------------------------ Error Code : 1005 Can't create table '.\systeem\#sql-830_e.frm' (errno: 150) (0 ms taken) ------ A unica diferença que vejo nos campos que necessitam ser iguais é que: ava_avaliacao.USU_ID não é auto_incremento, nao consigo colocar que esse campo seja auto-incremento. ------------- Vi isso numm blog: ... Ou seja (aqui estava meu erro) até mesmo se ele é unsigned deve ser igual. As outras condições são: * Ambas as tabelas do tipo InnoDB; (OK, as minhas tabelas são.) * Na tabela que faz a referência, deve haver um indíce que corresponde a chave estrangeira; (OK, eu criei esses indices) * Na tabela referenciada, deve haver um indíce que corresponde a chave primária; (OK, possui esse indice) * Não são suportados para este tipo de relacionamento, campos text e blob;( OK, os campos sao int,varchar,tinyint) * Os campos devem ter o mesmo tipo (em todas as características); --- por favor, me ajudem, estou desperada!!!!!!!!!!!!! desde já, grata Liliane Alves do Nascimento Compartilhar este post Link para o post Compartilhar em outros sites