Derme Postado Janeiro 20, 2010 Denunciar Share Postado Janeiro 20, 2010 Já vi aqui no fórum que para atribuir uma propriedade UNIQUE tenho que fazer assim:ALTER TABLE `ct_usuarios` ADD UNIQUE (`email`)Só que eu quero o contrário, ela já e UNIQUE e quero retirar essa propriedade, como faço? Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Janeiro 21, 2010 Denunciar Share Postado Janeiro 21, 2010 Já vi aqui no fórum que para atribuir uma propriedade UNIQUE tenho que fazer assim:ALTER TABLE `ct_usuarios` ADD UNIQUE (`email`)Só que eu quero o contrário, ela já e UNIQUE e quero retirar essa propriedade, como faço?ALTER TABLE `ct_usuarios` DROP INDEX `email`, ADD INDEX (`email`); Link para o comentário Compartilhar em outros sites More sharing options...
0 Derme Postado Janeiro 22, 2010 Autor Denunciar Share Postado Janeiro 22, 2010 Essa query aqui, não funcionou não!ALTER TABLE 'ct_usuarios' DROP INDEX 'email', ADD INDEX ('email');Nem realizou a query. Eu gostaria de saber se UNIQUE é o inverso de INDEXou eu só tenho que retirar a propriedade UNIQUE, porque diretamente no phpmyadmin,quando vou em estrutura e clico para editar o campo email, aparece um SELECT com UNIQUE e mais duas opções INDEX e FULLTEXT, pra tirar UNIQUE então tenho que marcar INDEX ou FULLTEXT? porque não tem como simplesmente desabilitar UNIQUE. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Janeiro 22, 2010 Denunciar Share Postado Janeiro 22, 2010 Oi, 'Derme' UNIQUE é um tipo de índice. O índice criado com a cláusula UNIQUE não permite repetição.Passa o resultado de um show create table 'ct_usuarios' para que eu possa te dar a instrução correta. Link para o comentário Compartilhar em outros sites More sharing options...
0 Derme Postado Janeiro 22, 2010 Autor Denunciar Share Postado Janeiro 22, 2010 Bem, não sei se é bem isso que você quer, mas fiz a query no phpmyadmin, resultou na imagem abaixoA questão é que não queria ter o trabalho de reinstalar a tabela, pois já tem muitos cadastros, senão era só retira o atributo UNIQUE que coloquei pro campo email, mas queria vê se dá pra mudar sem ter que reinstalar.Obrigado pela atenção! Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Janeiro 23, 2010 Denunciar Share Postado Janeiro 23, 2010 Oi, 'Derme' Agora entendi o que você fez.Você criou 2 indices UNIQUE para email. Um chama email e ooutro chama email_2. (Veja os trchos de como forem criados:UNIQUE KEY `email`(email), ... , UNIQUE KEY `email_2`(email), ... Execute os comandos abaixo para corrigir do jeito que você quer:DROP INDEX `email`ON `auth_cookie_senha`; DROP INDEX `email_2` ON `auth_cookie_senha`; CREATE INDEX `email` ON `auth_cookie_senha` (`email`); Link para o comentário Compartilhar em outros sites More sharing options...
0 Derme Postado Janeiro 23, 2010 Autor Denunciar Share Postado Janeiro 23, 2010 Oi, 'Derme' Agora entendi o que você fez.Você criou 2 indices UNIQUE para email. Um chama email e ooutro chama email_2.Na verdade esse `email_2` já foi uma besteira, algo errado que eu fiz no phpmyadmin tentando retirar a propriedade UNIQUE do campo email, aí não sei o que foi acabei criando uma cópia do campo email, mas isso não é problema, o problema era mesmo só retirar UNIQUE do campo email. Link para o comentário Compartilhar em outros sites More sharing options...
0 Rodrigo F. Postado Março 30, 2010 Denunciar Share Postado Março 30, 2010 (editado) Estou com um problema parecido, tento cadastrar 1 titulo repetido (é necessário que permita) e sempre recusa, informando que já existe o titulo.O resultado da consulta foi:Não consegui solucionar o problema, mesmo sem resposta de UNIQUE na tabela// HACK LUSCARPA TO MAKE MULTIPLE CATEGORY $catids = mosGetParam( $_POST, 'catid', array() ); if(!_JM_J15){ if (!$row->bind( $_POST )) { echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n"; exit(); } } else { if (!$row->bind( JRequest::get('post',2) )) { echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n"; exit(); } } if($row->id) $and=" AND ID<>".$row->id; $query="SELECT id FROM #__jmovies WHERE LOWER(titolo) = '".addslashes(strtolower($row->titolo))."'".$and; $database->setQuery($query); $numRows = $database->getNumRows($database->query()); switch($task){ case "apply": if($numRows>0) mosRedirect( "index2.php?option=".$option."&task=editA&id=".$row->id, _JMOVIES_ADM_APPLYPRESENTE ); case "save": if($numRows>0) mosRedirect( "index2.php?option=".$option."&task=lista", _JMOVIES_ADM_SAVEPRESENTE ); }Acima a consulta para verificar duplicidade Editado Março 30, 2010 por Rodrigo F. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Março 30, 2010 Denunciar Share Postado Março 30, 2010 Oi, 'Rodrigo F.'Neste caso, quem pode estar definindo a unicidade nesta tabela é o PRIMARY KEY. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Derme
Já vi aqui no fórum que para atribuir uma propriedade UNIQUE tenho que fazer assim:
ALTER TABLE `ct_usuarios` ADD UNIQUE (`email`)
Só que eu quero o contrário, ela já e UNIQUE e quero retirar essa propriedade, como faço?
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados