23 lines
825 B
SQL
23 lines
825 B
SQL
-- Adicionar coluna id_cliente na tabela clientes (numérico)
|
|
ALTER TABLE clientes ADD COLUMN IF NOT EXISTS id_cliente VARCHAR(10);
|
|
|
|
-- Criar índice para melhor performance
|
|
CREATE INDEX IF NOT EXISTS idx_clientes_id_cliente ON clientes(id_cliente);
|
|
|
|
-- Gerar IDs numéricos sequenciais para clientes existentes (se houver)
|
|
WITH numbered_clients AS (
|
|
SELECT id, ROW_NUMBER() OVER (ORDER BY created_at) as row_num
|
|
FROM clientes
|
|
WHERE id_cliente IS NULL
|
|
)
|
|
UPDATE clientes
|
|
SET id_cliente = numbered_clients.row_num::TEXT
|
|
FROM numbered_clients
|
|
WHERE clientes.id = numbered_clients.id;
|
|
|
|
-- Tornar a coluna NOT NULL após popular os dados existentes
|
|
ALTER TABLE clientes ALTER COLUMN id_cliente SET NOT NULL;
|
|
|
|
-- Adicionar constraint de unicidade
|
|
ALTER TABLE clientes ADD CONSTRAINT unique_id_cliente UNIQUE (id_cliente);
|