Erro de sintaxe aspas

MySQL

22/07/2015

É correto utilizar aspas duplas, no meu caso está aparecendo um erro no primeiro trecho com as aspas duplas.


grant all on *.* to alan@"%" identified by "1234";



No "%"

Mensagem: Syntax erro: unexpected "%" (double quote text)

Posso executar mesmo assim ou tem como tirar esse erro?
Alan Mario

Alan Mario

Curtidas 0

Respostas

Jothaz

Jothaz

22/07/2015

No SQL deve-se utilizar '' (aspa simples).

Substitua e teste.

Se continuar dando erro o motivo será outro.
GOSTEI 0
Alan Mario

Alan Mario

22/07/2015

Estou utilizando "" ele executa sem problema mas fica um x como se existisse um erro, olha a imagem:

[img]http://arquivo.devmedia.com.br/forum/imagem/312853-20150725-182317.jpg[/img]
GOSTEI 0
Jothaz

Jothaz

22/07/2015

Estou utilizando "" ele executa sem problema mas fica um x como se existisse um erro, olha a imagem:

[img]http://arquivo.devmedia.com.br/forum/imagem/312853-20150725-182317.jpg[/img]


O comando funciona e faz o esperado?

Se sim, provavelmente o software de gerenciamento esta retornando um erro, porém o bd não.

Não acho aconselhável utilizar ", pois a maioria dos bd´s trabalha com '. O que pode complicar a portabilidade.
GOSTEI 0
Alan Mario

Alan Mario

22/07/2015

Pela mensagem sim, funciona normal! Será que não pode ser problema na ferramenta?
GOSTEI 0
Jothaz

Jothaz

22/07/2015

Pela mensagem sim, funciona normal! Será que não pode ser problema na ferramenta?


Não erro! A ferramenta esta correta pois eu nunca vi " funcionar no SQL. Normalmente usa-se '. Então como estas ferramentas funcionam com qualquer bd a ferramenta faz o correto e destaca como erro.
Talvez esta seja uma das coisa que funciona no MySQL e não funciona em nenhum outr bd.
Pode ser até que a ferramente troque o " por ' na hora de enviar para o bd e por isso funciona.
Cara tem décadas que não uso MySQL (prefiro milhões de vezes o PostgreSql), mas faça um teste use a interface nativa do MysQl e tente executar o comando com ".
Se funcionar é porque o MySQL aceita, agora todos os outros bancos que trabalho não aceita.
GOSTEI 0
Alan Mario

Alan Mario

22/07/2015

Deve ser isso mesmo, tenho o postgre, vou ver como reage, obrigado Jothaz.
GOSTEI 0
Jothaz

Jothaz

22/07/2015

Deve ser isso mesmo, tenho o postgre, vou ver como reage, obrigado Jothaz.


Faça o teste mesmo.

Estou tão acostumado a utilziar ' que sinceramente nunca uso ".

Fiz um teste no SQL Server e retorna erro:

declare @tab as table (n char(5))
insert into @tab (n) values ("oi")
insert into @tab (n) values ('oi')
select * from @tab





Mensagem 128, Nível 15, Estado 1, Linha 2
The name "oi" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted.

GOSTEI 0
Alan Mario

Alan Mario

22/07/2015

Realmente não rola, estranho, mas daqui pra frente estarei ciente! Valeu.
GOSTEI 0
Marilia Silva

Marilia Silva

22/07/2015

Boa noite!
Isso pode ajudar a esclarecer mais o assunto.

[url]http://elias.praciano.com/2015/04/como-escrever-strings-incluindo-aspas-e-caracteres-especiais-no-mysql/[/url]
GOSTEI 0
Alan Mario

Alan Mario

22/07/2015

Marilia vou ler amanha pois já está um pouco tarde para mim.
GOSTEI 0
Marilia Silva

Marilia Silva

22/07/2015

Marilia vou ler amanha pois já está um pouco tarde para mim.


Tudo bem, pois o Jothaz já esclareceu essas questões.
GOSTEI 0
Jothaz

Jothaz

22/07/2015

Realmente não rola, estranho, mas daqui pra frente estarei ciente! Valeu.


O poder e a beleza do SQL reside em ser, em tese, universal e poder ser usado em quem BD. Para manter este universalidade a American National Standards Institute (ANSI) adaptou e padronizou o SQL. A ideia é criar uma padronização da linguagem que poderia ser utilizada em qualquer bd.
só que o MySQL não segue este padrão ou segue o padrão dele(tem gente que acha isto uma vantagem eu não), então algumas coisas que funcionam no MySql não funcionam em outros bd´s. E o o uso do " é uma delas.

Principalmente se você for iniciante e pretende ser profissionalizar e utilizar outros bd´s aconselho a sempre usar suas queries o mais aderente ao padrão ANSI possível.

Boa noite!
Isso pode ajudar a esclarecer mais o assunto.

[url]http://elias.praciano.com/2015/04/como-escrever-strings-incluindo-aspas-e-caracteres-especiais-no-mysql/[/url]


No caso o artigo trato do "caractere de escape" comum a quase todas as linguagens para manipulação de caracteres especiais.
GOSTEI 0
Alan Mario

Alan Mario

22/07/2015

Certo, as diferenças entre alguns banco chega a ser apenas alguns detalhes, sendo que cada uma possui algumas peculiaridades.
GOSTEI 0
POSTAR