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

(Resolvido) ajuda por favor


alefesampaio

Pergunta

Olá, peguei um script, neste site, com uma tabela para mysql chamada de reservas, mas está dando erro. Como ainda não majo bem de sql necessito de ajuda de vocês.

A tabela é bem grande mais está aí.

CREATE DATABASE RESERVA;
USE RESERVA;
CREATE TABLE Equipamento (
   codigo INT (10) UNSIGNED DEFAULT '0' NOT NULL AUTO_INCREMENT, 
   descricao CHAR (40) DEFAULT '0' NOT NULL, 
   PRIMARY KEY(codigo), 
   UNIQUE(codigo), 
   INDEX(codigo)
);
CREATE TABLE Reserva (
   codigo INT (10) UNSIGNED DEFAULT '0' NOT NULL AUTO_INCREMENT, 
   cod_equipamento INT (10) UNSIGNED DEFAULT '0' NOT NULL, 
   dt_reserva DATE, 
   dt_montagem DATE, 
   turno INT (10) UNSIGNED DEFAULT '0' NOT NULL, 
   horario INT (10) UNSIGNED DEFAULT '0' NOT NULL, 
   sala CHAR (15) DEFAULT '0' NOT NULL, 
   professor CHAR (35) DEFAULT '0' NOT NULL, 
   PRIMARY KEY(codigo), 
   UNIQUE(codigo), 
   INDEX(codigo)
);
CREATE TABLE Turno (
   codigo INT (10) UNSIGNED DEFAULT '0' NOT NULL AUTO_INCREMENT, 
   descricao CHAR (3) DEFAULT '0', 
   PRIMARY KEY(codigo), 
   UNIQUE(codigo), 
   INDEX(codigo)
);
CREATE TABLE Horario (
   codigo INT (10) UNSIGNED DEFAULT '0' NOT NULL AUTO_INCREMENT, 
   cod_turno INT (10) UNSIGNED DEFAULT '0' NOT NULL, 
   PRIMARY KEY(codigo), 
   UNIQUE(codigo), 
   INDEX(codigo)
);

ALTER TABLE Turno 
   CHANGE descricao descricao CHAR(20)  DEFAULT "0" NOT NULL;
ALTER TABLE Reserva 
   CHANGE dt_reserva dt_reserva DATE NOT NULL;
ALTER TABLE Reserva 
   CHANGE dt_montagem dt_montagem DATE NOT NULL;

INSERT INTO turno (codigo, descricao) 
   VALUES (NULL, 'Matutino');
INSERT INTO turno (codigo, descricao) 
   VALUES (NULL, 'Vespertino');
INSERT INTO turno (codigo, descricao) 
   VALUES (NULL, 'Noturno');

INSERT INTO Horario (codigo, cod_turno) 
   VALUES (NULL, 1);

ALTER TABLE Horario 
   ADD horario CHAR(15)  NOT NULL;

UPDATE Horario 
   SET horario= '08:00 - 09:40' WHERE codigo=1;

INSERT INTO Horario (codigo, cod_turno, horario) 
   VALUES (NULL, 1, '09:40 - 11:30');
INSERT INTO Horario (codigo, cod_turno, horario) 
   VALUES (NULL, 2, '01:00 - 03:40');
INSERT INTO Horario (codigo, cod_turno, horario) 
   VALUES (NULL, 2, '03:50 - 05:30');

UPDATE Horario 
   SET horario= '09:50 - 11:30' WHERE codigo=2;

INSERT INTO Horario (codigo, cod_turno, horario) 
   VALUES (NULL, 2, '05:40 - 06:');

UPDATE Horario 
   SET horario= '01:00 - 02:40' WHERE codigo=3;
UPDATE Horario 
   SET horario= '02:50 - 04:30' WHERE codigo=4;
UPDATE Horario 
   SET horario= '04:40 - 06:20' WHERE codigo=5;

INSERT INTO Horario (codigo, cod_turno, horario) 
   VALUES (NULL, 3, '');

UPDATE Horario 
   SET horario= '13:00 - 14:40' 
   WHERE codigo=3;
UPDATE Horario 
   SET horario= '14:50 - 04:30' 
   WHERE codigo=4;
UPDATE Horario 
   SET horario= '14:50 - 16:30' 
   WHERE codigo=4;
UPDATE Horario 
   SET horario= '16:40 - 18:20' 
   WHERE codigo=5;
UPDATE Horario 
   SET horario= '19:00 - 20:40' 
   WHERE codigo=6;

INSERT INTO Horario (codigo, cod_turno, horario) 
   VALUES (NULL, 3, '20:50 - 22:30');

INSERT INTO Equipamento (codigo, descricao) 
   VALUES (NULL, 'Datashow ');

UPDATE Equipamento 
   SET descricao= 'Datashow 1' WHERE codigo=1;

INSERT INTO Equipamento (codigo, descricao) 
   VALUES (NULL, 'Datashow 2');
INSERT INTO Equipamento (codigo, descricao) 
   VALUES (NULL, 'Datashow 3');
INSERT INTO Equipamento (codigo, descricao) 
   VALUES (NULL, 'Datashow 4');

UPDATE Equipamento 
   SET descricao= 'Retroprojetor 1' WHERE codigo=4;

INSERT INTO Equipamento (codigo, descricao) 
   VALUES (NULL, 'Retroprojetor 2');
INSERT INTO Equipamento (codigo, descricao) 
   VALUES (NULL, 'Retroprojetor 3');
INSERT INTO Equipamento (codigo, descricao) 
   VALUES (NULL, 'Retroprojetor 4');
INSERT INTO Equipamento (codigo, descricao) 
   VALUES (NULL, 'Retroprojetor 5');
INSERT INTO Equipamento (codigo, descricao) 
   VALUES (NULL, 'Televisão');
INSERT INTO Equipamento (codigo, descricao) 
   VALUES (NULL, 'Vídeo');
INSERT INTO Equipamento (codigo, descricao) 
   VALUES (NULL, 'Vídeo');

INSERT INTO turno (codigo, descricao) 
   VALUES (NULL, 'eee');

INSERT INTO reserva (codigo, cod_equipamento, dt_reserva, dt_montagem, turno, horario, sala, professor) 
VALUES (NULL, 1, '2002-08-11', '2002-08-11', 1, 1, '204', 'Roberto');
INSERT INTO reserva (codigo, cod_equipamento, dt_reserva, dt_montagem, turno, horario, sala, professor) 
VALUES (NULL, 1, '2002-08-11', '2002-08-11', 1, 2, '205', 'Roberto');
INSERT INTO reserva (codigo, cod_equipamento, dt_reserva, dt_montagem, turno, horario, sala, professor) 
VALUES (NULL, 2, '2002-08-11', '2002-08-11', 1, 1, '203', 'Mauro');
INSERT INTO reserva (codigo, cod_equipamento, dt_reserva, dt_montagem, turno, horario, sala, professor) 
VALUES (NULL, 3, '2002-08-11', '2002-08-11', 1, 1, '207', 'Mari');
INSERT INTO reserva (codigo, cod_equipamento, dt_reserva, dt_montagem, turno, horario, sala, professor) 
VALUES (NULL, 5, '2002-08-11', '2002-08-11', 2, 4, '203', 'Pedro');
INSERT INTO reserva (codigo, cod_equipamento, dt_reserva, dt_montagem, turno, horario, sala, professor) 
VALUES (NULL, 9, '2002-08-11', '2002-08-11', 1, 2, '209', 'Marta');

ALTER TABLE reserva 
   DROP dt_reserva;

Editado por Denis Courcy
Melhorar entendimento
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'alefesampaio'!

Este script está parecendo um script de exercício para aprender sql, tal a quantidade de voltas que ele dá para chegar um ponto.

Vou responder a parte de sua questão. Vou deixar que você procure outros erros semelhantes e corrija seu script. Assim você vai aprender mais sobre SQL e sobre MySQL.

Vamos lá:

Na tabela equipamento,

O primeiro erro está no uso da cláusula default para atributos auto_increment.

Se o campo é auto_increment, então ele já sabe o que deve colocar nele. Será uma sequência de 1, 2, 3,..., 4294967295, porque ele foi definido como int(10) unsigned.

O segundo está na criação de índices , UNIQUE(codigo), INDEX(codigo).

Se o atributo codigo é primary key então ele não tem repetição. Ou seja, já é unique. E se já foi criado um índice primário para este atributo é desnecessário criar os outros dois. Esta ação causará demora na atualização desta tabela.

Leia o manual do MySQl de sua versão, ou se você não souber inglês, leia o da versão 4.1 que foi traduzido para o português.

Se houver mais dúvidas, poste novamente.

Link para o comentário
Compartilhar em outros sites

  • 0
Oi, 'alefesampaio'!

Este script está parecendo um script de exercício para aprender sql, tal a quantidade de voltas que ele dá para chegar um ponto.

Vou responder a parte de sua questão. Vou deixar que você procure outros erros semelhantes e corrija seu script. Assim você vai aprender mais sobre SQL e sobre MySQL.

Vamos lá:

Na tabela equipamento,

O primeiro erro está no uso da cláusula default para atributos auto_increment.

Se o campo é auto_increment, então ele já sabe o que deve colocar nele. Será uma sequência de 1, 2, 3,..., 4294967295, porque ele foi definido como int(10) unsigned.

O segundo está na criação de índices , UNIQUE(codigo), INDEX(codigo).

Se o atributo codigo é primary key então ele não tem repetição. Ou seja, já é unique. E se já foi criado um índice primário para este atributo é desnecessário criar os outros dois. Esta ação causará demora na atualização desta tabela.

Leia o manual do MySQl de sua versão, ou se você não souber inglês, leia o da versão 4.1 que foi traduzido para o português.

Se houver mais dúvidas, poste novamente.

Ola, denis você poderia me mostra exemplos de como eu faço para aruma a primeira tabela lembrando que não sei quase nada de mysql por isso não to conseguindo arrumar os erros a qual você cita

mais garanto que vou ler manual do mysql ok.....

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, 'alefesampaio'!

A primeira tabela ficará assim:

CREATE TABLE Equipamento (
   codigo INT (10) UNSIGNED NOT NULL AUTO_INCREMENT, 
   descricao CHAR (40) DEFAULT '0' NOT NULL, 
   PRIMARY KEY(codigo)
);

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...