March 2017
M T W T F S S
« Nov    
 12345
6789101112
13141516171819
20212223242526
2728293031  

BASE DE DATOS

Partición de tabla, y llenar automaticamente sus registros

Para fragmentar tabla horizontalete, presentamos el siguiente Script.

create table tablanormal(llave bigint primary key, dato varchar(15))
ENGINE= MYISAM
create table tablaparticionada(llave bigint primary key, dato varchar(15))
ENGINE= MYISAM
partition by range (llave)(
partition p0 values less than (100000),
partition p1 values less than (200000),
partition p2 values less than (300000),
partition p3 values less than (400000),

partition p4 values less than (500000),
partition p5 values less than (600000),
partition p6 values less than (700000),
partition p7 values less than (800000),
partition p8 values less than (900000),
partition p9 values less than (1000000),
partition p10 values less than (1100000),
partition p11 values less than (1200000),
partition p12 values less than (1300000),
partition p13 values less than (1400000),
partition p14 values less than (1500000),
partition p15 values less than (1600000),
partition p16 values less than (1700000),
partition p17 values less than (1800000),
partition p18 values less than (1900000),
partition p19 values less than (2000000),

partition p20 values less than (2500000),
partition p21 values less than (3000000),
partition p22 values less than (3500000),
partition p23 values less than (4000000),
partition p24 values less than (4500000),
partition p25 values less than (5000001)
);

delimeter//
create PROCEDURE insertatablanormal(v1 bigint )
BEGIN
while v1> 0 Do
insert into tablanormal values(v1,’123456789′);
set v1=v1-1;
end while;
end
//
delimeter //
create PROCEDURE insertatablaparticionada(v1 bigint )
BEGIN
while v1> 0 Do
insert into tablaparticionada  values(v1,’123456789′);
set v1=v1-1;
end while;
end
//

SET SQL_SAFE_UPDATES=0;
truncate tablanormal;
truncate tablaparticionada;
call insertatablanormal(1000000);
call insertatablaparticionada(1000000);
SELECT * FROM mibase.tablanormal limit 0, 1000000;
SELECT * FROM mibase.tablaparticionada limit 0, 1000000;
UPDATE mibase.tablanormal SET dato = ’00ABCDEFGHI123′;
UPDATE mibase.tablaparticionada SET dato = ‘AAABCDEFG12345’;
DELETE FROM mibase.tablanormal;
DELETE FROM mibase.tablaparticionada;

Continue reading

Activar postgres en Xampp 1.7.7

Ingresa al directorio donde se instalo el postgresql 9.1, ve hasta la carpeta ‘bin’ y de alli copia los siguientes archivos

– libiconv-2.dll o libiconv.dll
– libintl-8.dll
– libpq.dll
Copiar al directorio ‘C:\xampp\apache\bin’
Activar en el php.ini en la linea
;extension=php_pgsql.dll
extension=php_pgsql.dll
quitar el ‘;’ y luego reiniciar el servicio de apache.

Crear y asignar autoincremental a columna campo tipo serial

Cuando necesites crear un campo y quieres abregale un secuencial.

 

CREATE SEQUENCE esquema.tabla_tbl_id_seq;
ALTER TABLE esquema.tabla ADD COLUMN tbl_id integer;
UPDATE esquema.tabla SET tbl_id = NEXTVAL(‘esquema.tabla_tbl_id_seq’);
ALTER TABLE esquema.tabla ALTER COLUMN tbl_id SET NOT NULL;
ALTER TABLE esquema.tabla ALTER COLUMN tbl_id SET DEFAULT nextval(‘esquema.tabla_tbl_id_seq’::regclass);

Crear Tabla con función en Postgres 8.4 y 9.x

Al realizar una funcion que cree autoamticamente una tabla con parametros, me econtre con un error que decia  ERROR:  syntax error at or near “NOT”
LINE 1: CREATE TABLE  IF NOT EXISTS

Esto no funciono en un postgres 8.4 y la funcion que realice era en 9.x asi que realice dos funciones para que funcione en mi servidor de aplicaciones en 8.4

Continue reading

Particionar tabla Oracle, y llenar automaticamente con registros

Para fragmentar horizontal una tabla y llenar automaticamente .
create table tablanormal
(
llave integer,dato varchar(10)
);
create table tablaparticionada
(
llave integer,dato varchar(10)
);

partition by range(llave)
(
partition p0 values less than (100000) ,
partition p1 values less than (200000) ,
partition p2 values less than (300000) ,
partition p3 values less than (400000) ,
partition p4 values less than (500000) ,
partition p5 values less than (600000) ,
partition p6 values less than (700000) ,

partition p7 values less than (800000) ,
partition p8 values less than (900000) ,
partition p9 values less than (1000001)
);

CREATE OR REPLACE PROCEDURE insertartablanormal(valor IN NUMBER) AS
BEGIN
declare
v number(7) := 1;
dato     varchar2(10);

begin
while v <= valor loop

insert into tablanormal (llave, dato) values (v, ‘dato’);
v := v + 1;

end loop;
end;
end insertar_particionada;

CREATE OR REPLACE PROCEDURE insertatablaparticionada(valor IN NUMBER) AS
BEGIN
declare
v number(7) := 1;
dato     varchar2(10);

begin
while v <= valor loop

insert into particionada (llave, dato) values (v, ‘dato’);
v := v + 1;

end loop;
end;
end insertar_particionada;

truncate tablanormal;
truncate tablaparticionada;
select insertatablanormal(1000000);
select insertatablaparticionada(1000000);
SELECT * FROM tablanormal ;
SELECT * FROM tablaparticionada;
UPDATE tablanormal SET dato = ’00ABCDEFGHI123′;
UPDATE tablaparticionada SET dato = ‘AAABCDEFG12345’;
DELETE FROM tablanormal;
DELETE FROM tablaparticionada;

Continue reading

Particionar tabla postgres, y llenar automaticamente con registros

El siguiente script es para crear una tabla fragmentada horizontalmente y llenar automaticamente con un procedimiento almacenado.

–Postgres
create table tablanormal(llave bigint primary key, dato varchar(15));
create table tablaparticionada(llave bigint primary key, dato varchar(15));

 

–crea tablas hijas
create table tablaparticionada1(check (llave>=0 and llave<100000))inherits(tablaparticionada);
create table tablaparticionada2(check (llave>=100000 and llave<200000))inherits( tablaparticionada );
create table tablaparticionada3(check (llave>=200000 and llave<300000))inherits( tablaparticionada );
create table tablaparticionada4(check (llave>=300000 and llave<400000))inherits( tablaparticionada );
create table tablaparticionada5(check (llave>=400000 and llave<500000))inherits( tablaparticionada );
create table tablaparticionada6(check (llave>=500000 and llave<600000))inherits( tablaparticionada );
create table tablaparticionada7(check (llave>=600000 and llave<700000))inherits( tablaparticionada );
create table tablaparticionada8(check (llave>=700000 and llave<800000))inherits( tablaparticionada );
create table tablaparticionada9(check (llave>=800000 and llave<900000))inherits( tablaparticionada );
create table tablaparticionada10(check (llave>=900000 and llave<1000000))inherits( tablaparticionada );
create table tablaparticionada11(check (llave>=1000000 and llave<2000000))inherits( tablaparticionada );
create table tablaparticionada12(check (llave>=2000000 and llave<3000000))inherits( tablaparticionada );
create table tablaparticionada13(check (llave>=3000000 and llave<4000000))inherits( tablaparticionada );
create table tablaparticionada14(check (llave>=4000000 and llave<5000000))inherits( tablaparticionada );
create table tablaparticionada15(check (llave>=5000000 and llave<6000001))inherits( tablaparticionada );

–crear reglas
create or replace rule rtablaparticionada1 as
on insert to  tablaparticionada  where (llave >0 and llave<100000) do instead insert into tablaparticionada1 values(new.llave,new.dato);

create or replace rule rtablaparticionada2 as
on insert to  tablaparticionada  where (llave >=100000 and llave<200000) do instead insert into tablaparticionada2 values(new.llave,new.dato);

create or replace rule rtablaparticionada3 as
on insert to  tablaparticionada  where (llave >=200000 and llave<300000) do instead insert into tablaparticionada3 values(new.llave,new.dato);

create or replace rule rtablaparticionada4 as
on insert to  tablaparticionada  where (llave >=300000 and llave<400000) do instead insert into tablaparticionada4 values(new.llave,new.dato);

create or replace rule rtablaparticionada5 as
on insert to  tablaparticionada  where (llave >=400000 and llave<500000) do instead insert into tablaparticionada5 values(new.llave,new.dato);

create or replace rule rtablaparticionada6 as
on insert to  tablaparticionada  where (llave >=500000 and llave<600000) do instead insert into tablaparticionada6 values(new.llave,new.dato);

create or replace rule rtablaparticionada7 as
on insert to  tablaparticionada  where (llave >=600000 and llave<700000) do instead insert into tablaparticionada7 values(new.llave,new.dato);

create or replace rule rtablaparticionada8 as
on insert to  tablaparticionada  where (llave >=700000 and llave<800000) do instead insert into tablaparticionada8 values(new.llave,new.dato);

create or replace rule rtablaparticionada9 as
on insert to  tablaparticionada  where (llave >=800000 and llave<900000) do instead insert into tablaparticionada9 values(new.llave,new.dato);

create or replace rule rtablaparticionada10 as
on insert to  tablaparticionada  where (llave >=900000 and llave<1000000) do instead insert into tablaparticionada10 values(new.llave,new.dato);

create or replace rule rtablaparticionada11 as
on insert to  tablaparticionada  where (llave >=1000000 and llave<2000000) do instead insert into tablaparticionada11 values(new.llave,new.dato);

create or replace rule rtablaparticionada12 as
on insert to  tablaparticionada  where (llave >=2000000 and llave<3000000) do instead insert into tablaparticionada12 values(new.llave,new.dato);

create or replace rule rtablaparticionada13 as
on insert to  tablaparticionada  where (llave >=3000000 and llave<4000000) do instead insert into tablaparticionada13 values(new.llave,new.dato);

create or replace rule rtablaparticionada14 as
on insert to  tablaparticionada  where (llave >=4000000 and llave<5000000) do instead insert into tablaparticionada14 values(new.llave,new.dato);

create or replace rule rtablaparticionada15 as
on insert to  tablaparticionada  where (llave >=5000000 and llave<6000001) do instead insert into tablaparticionada15 values(new.llave,new.dato);

—–para actualizar

create or replace rule ruptablaparticionada1 as
on update to  tablaparticionada  where (old.llave >=0 and old.llave<100000) do instead update   tablaparticionada1  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada2 as
on update to  tablaparticionada  where (old.llave >=100000 and old.llave<200000) do instead update   tablaparticionada2  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada3 as
on update to  tablaparticionada  where (old.llave >=200000 and old.llave<300000) do instead update   tablaparticionada3  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada4 as
on update to  tablaparticionada  where (old.llave >=300000 and old.llave<400000) do instead update   tablaparticionada4  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada5 as
on update to  tablaparticionada  where (old.llave >=400000 and old.llave<500000) do instead update   tablaparticionada5  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada6 as
on update to  tablaparticionada  where (old.llave >=500000 and old.llave<600000) do instead update   tablaparticionada6  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada7 as
on update to  tablaparticionada  where (old.llave >=600000 and old.llave<700000) do instead update   tablaparticionada7  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada8 as
on update to  tablaparticionada  where (old.llave >=700000 and old.llave<800000) do instead update   tablaparticionada8  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada9 as
on update to  tablaparticionada  where (old.llave >=800000 and old.llave<900000) do instead update   tablaparticionada9  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada10 as
on update to  tablaparticionada  where (old.llave >=900000 and old.llave<1000000) do instead update   tablaparticionada10  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada11 as
on update to  tablaparticionada  where (old.llave >=1000000 and old.llave<2000000) do instead update   tablaparticionada11  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada12 as
on update to  tablaparticionada  where (old.llave >=2000000 and old.llave<3000000) do instead update   tablaparticionada12  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada13 as
on update to  tablaparticionada  where (old.llave >=3000000 and old.llave<4000000) do instead update   tablaparticionada13  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada14 as
on update to  tablaparticionada  where (old.llave >=4000000 and old.llave<5000000) do instead update   tablaparticionada14  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada15 as
on update to  tablaparticionada  where (old.llave >=5000000 and old.llave<6000001) do instead update   tablaparticionada15  set dato= new.dato where old.llave=llave;

CREATE OR REPLACE FUNCTION insertatablanormal(v bigint)
RETURNS void AS
$body$
DECLARE
i bigint;
BEGIN
for i in 1..v loop
insert into tablanormal values (i, ‘1234567890abcd’);
end loop;
END;
$body$
LANGUAGE ‘plpgsql’ VOLATILE;

CREATE OR REPLACE FUNCTION insertatablaparticionada(v bigint)
RETURNS void AS
$body$
DECLARE
i bigint;
BEGIN
for i in 1..v loop
insert into tablaparticionada values (i, ‘1234567890abcd’);
end loop;
END;
$body$
LANGUAGE ‘plpgsql’ VOLATILE;

truncate tablanormal;
truncate tablaparticionada;
select insertatablanormal(1000000);
select insertatablaparticionada(1000000);
SELECT * FROM tablanormal ;
SELECT * FROM tablaparticionada;
UPDATE tablanormal SET dato = ’00ABCDEFGHI123′;
UPDATE tablaparticionada SET dato = ‘AAABCDEFG12345’;
DELETE FROM tablanormal;
DELETE FROM tablaparticionada;

Continue reading

CLAVES DE POSTGRES ORIGINAL

Para saber la clave de postgres original funciona asi
–clave original de un usuario postgres
select md5(‘clavespostgres’);

javaprograma
wine
base de datos
php
Cannot send session cache limiter – headers already sent
Warning: Cannot send session cache limiter – headers already sent (output started at /home/httpd/vhosts/martinalia.com/httpdocs/inc-public.php3(20) : eval()’d code:7) in /home/httpd/vhosts/martinalia.com/httpdocs/inc-public.php3(20) :
Read more.
Particionar tabla postgres, y llenar automaticamente con registros
El siguiente script es para crear una tabla fragmentada horizontalmente y llenar automaticamente con un procedimiento almacenado. –Postgres create table
Read more.
Particionar tabla Oracle, y llenar automaticamente con registros
Para fragmentar horizontal una tabla y llenar automaticamente . create table tablanormal ( llave integer,dato varchar(10) ); create table tablaparticionada
Read more.
Particionar tabla SQL Server, y llenar automaticamente con registros
CREATE TABLE tablanormal ( llave bigint primary key, dato varchar(15) );
Read more.
WMI error al desinstalar Sqlserver 2008
Detenga el servicio WMI: Ir a Inicio / Ejecutar, escriba cmd en la pantalla que se abre tipo: net stop
Read more.
Violation of PRIMARY KEY constraint
Violation of PRIMARY KEY constraint ‘PK_TABLA’. Cannot insert duplicate key in object ‘dbo.TABLA’. The statement has been terminated.
Read more.
INSTALAR JBOSS 7 EN CENTOS 6.4
INSTALAR JBOSS 7 REALIZAR LO SIGUIENTE ]#yum install java-1.7.0-openjdk ]#java -version ]#cd lx-jboss71-jdk7-jdbcpg84/ ]#cp /usr/share/ ]#cp jboss-as-7.1.1.Final.zip /usr/share/ ]#cd /usr/share/
Read more.
Crear Tabla con función en Postgres 8.4 y 9.x
Al realizar una funcion que cree autoamticamente una tabla con parametros, me econtre con un error que decia  ERROR:  syntax
Read more.
CONFIGURAR APACHE CON JBOSS 7.1
Observar que Jboss este añadido el apj en el Administrador, si no esta añadirlo.  Instalar apache en tu centos ]#yum
Read more.
Crear y asignar autoincremental a columna campo tipo serial
Cuando necesites crear un campo y quieres abregale un secuencial.   CREATE SEQUENCE esquema.tabla_tbl_id_seq; ALTER TABLE esquema.tabla ADD COLUMN tbl_id
Read more.