Ir para conteúdo
Fórum Script Brasil
  • 0

Retirar propriedade UNIQUE


Derme

Pergunta

8 respostass a esta questão

Posts Recomendados

  • 0
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

  • 0

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 INDEX

ou 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

  • 0

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

  • 0

Bem, não sei se é bem isso que você quer, mas fiz a query no phpmyadmin, resultou na imagem abaixo

create_table.jpg

A 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

  • 0

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

  • 0
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

  • 0

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:

resultado.jpg

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 por Rodrigo F.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...