[MS SQL Server] - Exclusão de colunas com valor default

Ao excluir uma coluna com valor default atribuído em uma tabela, o seguinte erro é disparado pelo SQL Server:

The object 'DF__Contato__ativo__6166761E' is dependent on column 'Ativo'. Isso acontece porque antes de excluir uma coluna de uma tabela, é necessário certificar-se que ela não é referenciada por nenhuma chave ou restrição e também não tenha um valor default associado a ela.Para resolver

[MS SQL Server] - Conflitos de COLLATION em operações de comparação

Em bancos de dados SQL Server, as Collations são utilizadas para definir a maneira como os dados do tipo string (nchar, nvarchar, e ntext) são armazenados.

Em resumo, uma collation define:

A codificação (Character Set) utilizada para armazenar os caracteres não-Unicode. O algoritmo de ordenação utilizado para ordenar o retorno das consultas

O SQL Server permite que seja configurada uma

MySQL 5.7 – Mais segurança para seus usuários e senhas

O MySQL 5.7 chega ao estágio de RC (release candidate). Isto significa que já está na hora de voce começar a pensar em aposentar o bom, e, nada velho MySQL 5.6. Mas, antes de fazer a migração é interessante dar […] ↓ Leia o restante deste post...

Como trabalhar com array de checkboxes opcionais – Parte 02

Dando continuidade ao artigo anterior:

Iremos escrever, enfim, os códigos para fazer esse CRUD com checkboxes – lembrando que o intuito do artigo não é ensinar programação orientada a objetos. Então, irei deixar o script PHP o mais simples possível, para que você possa extrair e então montar o seu dentro da sua estrutura/framework.

Listando os opcionais do banco

A listagem dos itens é super trivial:

<?php
  $query = $mysqli->query('SELECT id, name FROM optional');
  while($row = $query->fetch_object()) {
?>
    <label>
      <input type="checkbox" name="optional[]" value="<?php echo $row->id; ?>" …
[Leia mais]
Amazon Machine Learning – Tomada de decisões orientadas por dados em escala

Hoje, é relativamente simples e barato observar e coletar grandes quantidades de dados operacionais sobre um sistema, produto ou processo. Não surpreendentemente, pode haver enormes quantidades de informações enterradas dentro de gigabytes de dados relativos às compras dos clientes, trilhas de navegação em web sites, ou respostas a campanhas de e-mail. A boa notícia é que todos esses dados podem, quando analisados corretamente, levar a resultados estatisticamente significativos, que podem ser usados para tomar decisões de alta qualidade. A má notícia é que você precisa encontrar cientistas de dados com experiência relevante em aprendizado de máquina, e espero que a sua infra-estrutura seja capaz de suportar seu conjunto ferramenta, e espero (mais uma vez) que o conjunto de ferramentas seja suficientemente confiável e …

[Leia mais]
DatabaseCast 56: Sintaxe SQL

Olá, pessoal! Neste episódio do DatabaseCast, Mauro Pichiliani (Twitter | Blog), Wagner Crivelini (@wcrivelini) e os ouvintes Alex Zaballa (@alexzaballa) e Henrique Jardim (@henriquejardim) quebram a cabeça tentando descobrir o problema na sintaxe do comando SQL. Você também vai saber um pouco mais sobre o padrão SQL, descobrir por que fugir da álgebra relacional, evitar colocar hints de instrução na forma de comentários, odiar a sintaxe (+)= e =(+) e não dar ouvidos ao diabinho e ao anjinho que ficam em cima dos ombros.

[Leia mais]
Chaves artificiais ou naturais no banco de dados?

Faça essa pergunta em uma mesa de DBAs ou arquitetos de software no bar, se afaste, pegue um chopp e assista a um episódio live de Spartacus!

Alguns dizem que se uma chave natural está disponível, ela deve ser utilizada. Eu prefiro pensar que não, não tenho o hábito de usar cpf, rg, dog-tag-id e outros como identificador de uma pessoa num banco de dados.

Meu argumento é que esses campos podem ser únicos, mas não são controlados por mim, o freak dev/dba/designer/barista e, se não está sob meu controle, eu não sei o que pode acontecer com ele.

Pode ser que o Bolsonado acorde um dia com desejo de colocar uma letra no início de cada RG e aí já viu… nem disco da Xuxa sendo tocado ao contrário junto a um coral de apitos astecas pode impedi-lo.

Já a chave artificial é minha, e sob essa ótica artificial deixa de ser quase pejorativo para ser carinhoso.

“Essa chave aí?… Eu …

[Leia mais]
Configurando charset de uma aplicação PHP

Imagine que você está desenvolvendo uma aplicação para Internet em seu ambiente local, e chegou o dia de colocar o sistema em produção, um servidor compartilhado, hospedagem. Além de verificar se está tudo de acordo com as funcionalidades, uma das preocupações nesse cenário é analisar se o charset está devidamente configurado na aplicação e no banco de dados.

O que é charset?

Charset, Character Set, é o conjunto de caracteres que são utilizados para criação de documentos, bancos de dados, sites etc. Cada charset possui uma lista de caracteres disponíveis, sendo estes representados por uma posição de referência.

Confira alguns caracteres disponíveis no charset ASCII.

Posição Caractere
65 A
66 B
[Leia mais]
MySQL 5.7 – novidades no gerenciamento de usuários

Uma série de mudanças no subsistema de gestão de usuários da nova versão do sistema de gerenciamento de bancos de dados open source mais popular do mundo é observada. Muito vem para melhorar tudo aquilo que é considerado um problema de segurança para muitos dos administradores de bancos e dados que já trabalham com o MySQL desde outras versões.

Realmente, a versão 5.7 trará muitas novidades que já podem ser testadas através do download do DMR (Developement Milestonbe Release), disponível no labs.mysql.com. Muito do que vem sendo solicitado há algum tempo está previsto para a nova versão ainda sem previsão para lançamento. Entretanto, quero começar a listar aqui as várias novidades para que o leitor não fique perdido quando a hora da migração chegar – até porque as melhorias não são somente em algumas áreas, mas vários subsistemas estão sendo profundamente …

[Leia mais]
Utilizando Docker com MySQL

Numa definição muito simplista, o Docker é um modo de virtualização mais leve. Na virtualização “tradicional” para ter imagem utilizável você precisa criar a máquina virtual e depois instalar o Sistema Operacional. Com o Docker, você pode ter várias imagens sobre o mesmo SO ao mesmo tempo em que mantém o isolamento das aplicações e bibliotecas em cada imagem.

Ao invés de múltiplas VMs, teremos múltiplos containers. Múltiplos SOs dão suporte à tecnologia de containers, em destaque o Linux. Sendo assim, o kernel do SO provê o suporte aos containers e o Docker é uma camada de abstração para facilitar seu uso, similar ao que o Vagrant faz para VMs. Isto nos dá a vantagem adicional do Docker ser agnóstico ao …

[Leia mais]