[mysql] prosta procedura

0

Witam,

mam tabelke:

CREATE TABLE Passenger
(passenger_no INT NOT NULL AUTO_INCREMENT,
f_name VARCHAR(10),
l_name VARCHAR(20),
age INT,
gender CHAR(1),
CONSTRAINT pk_Passenger PRIMARY KEY(passenger_no)) ENGINE=InnoDB;

pytanie brzmi - jak zrobic do tego jakas procedure, zebym przy wywolaniu podawal z klawiatury potrzebne dane? moze jakies podpowiedzi albo link do czegos?

z gory dzieki bardzo

0

baza danych nie jest od interfejsu użytkownika! afaik żadna baza danych nie udostępnia takiej funkcjonalności.
poszukaj oprogramowania do zarządzania bazą danych mysql, np. phpmyadmin.

0

kiedys na bazach w pl/sql napisalem procedure, ktora wyszukiwala klientow w bazie po nazwisku, tzn ja wywolywalem procedure, podawalem znaki z klawiatury i to bylo porownywane, wiec myslalem ze da sie zrobic to samo, ale w druga strone, ze mam tabelke i pokolei robie dodawanie danych. i nie moge uzyc phpmyadmina, bo to ma byc zwykly mysql, w konsoli.

0

Jeżeli zamierzasz wpisywać dane z poziomu konsoli to czemu nie napiszesz po prostu:

INSERT INTO Passanger (f_name, l_name, age, gender) VALUES ('Ziutek', 'Kowalski', 10, M);
0

zrobilbym tak, ale mam ustalone w zadaniu, ze to ma byc procedura, wiec zrobilem tak:

DROP PROCEDURE IF EXISTS add_passenger ;

delimiter //
CREATE PROCEDURE add_passenger
(
IN p_f_name VARCHAR(10), IN p_l_name VARCHAR(20), IN p_age INT, IN p_gender VARCHAR(10)
)
BEGIN

INSERT INTO Passenger (f_name , l_name, age, gender)
VALUES ( p_f_name, p_l_name, p_age, p_gender);
END;
//

delimiter ;

CALL add_passenger ('Ziutek', 'Kowalski',21,'Male');

Nie jest to moze najkrotsza droga, ale dziala.

Przy okazji jeszcze jedno pytanie - w SQLu byla opcja check in. czy jest cos podobnego w MYSQLu? chcialbym sprawdzac, czy plec to facet czy babeczka?

0

if a = 'cycki' then ....

przecież mysql to sql z dodatkami, co jest w standardzie tsql na 95% będzie w mysql. inna sprawa, że pierwszy raz słyszę o czymś takim, jak "check in".

0

a o czyms takim slyszales, czy mnie glupot nauczyli:

SQL> create table Port(
  2  nazwa varchar2(20) primary key,
  3  ocean varchar2(10) <b>check(ocean in</b>('Atlantyk','Pacyfik','Indyjski')),
  4  szerokosc_geo char(4) not null,
  5  dlugosc_geo char(4) not null
  6  );

?

0

to co napisales to definiowanie tzw. constraint, czyli regul ktore musi spelniac wartosc wstawiana lub aktualizowana do kolumny
wiecej http://en.wikipedia.org/wiki/Check_Constraint

wiec co chcesz zrobic?

  1. ograniczyc mozliwosc wpisania do kolumny Gender wartosci 'M' lub 'F'
  2. czy w selekcie chcesz to M/F rozwinac do male/female?

jesli 1, to jak cie nauczyli napisz constraint
jesli 2 to select case Gender when 'M' then 'this is male'
when 'F' then 'this is female' end,
... /dalsza czesc zapytania/

1 użytkowników online, w tym zalogowanych: 0, gości: 1