У меня проблемы с выводом хранимой процедуры для выделения волонтеру определенных c языков.
Мои требования:
70% вероятности, что на английском языке говорят sh, и 50% шанс каждый для французов и хинди. По умолчанию Engli sh, если ни один из них не указан. Любой, кто говорит по-французски, предпочел бы читать по-французски. В противном случае люди предпочитают читать один из языков, на которых они могут говорить.
Мы построили наши таблицы в основном скрипте:
create table not_volunteer ( -- (volunteer is a view)
member_num int not null auto_increment,
firstname varchar(50) not null,
lastname varchar(50) not null,
dateofbirth date not null,
primary key (member_num)
)
create table volunteer2languageREAD(
member_num int,
is_639_1 varchar(50),
foreign key (is_639_1) references languagee(is_639_1)
foreign key (member_num) references not_volunteer(member_num)
);
create table volunteer2languageSPEAK(
member_num int,
is_639_1 varchar(50) default 'en',
foreign key (is_639_1) references languagee(is_639_1),
foreign key (member_num) references not_volunteer(member_num)
);
У нас есть языковые процедуры:
procedure 'french_generation'(in nfolks int)
BEGIN
declare exit handler for 1452
set @t = (nfolks - @x) * 0.5;
set @r = 0;
while @r < @t do
insert into volunteer2languageSPEAK(member_num, is 639_1)
values(@r+1, 'fr');
insert into volunteer2languageREAD(member_num, is 639_1)
values(@r+1, 'fr');
set @r = @r + 1;
end while;
END
И то же самое для Engli sh:
procedure 'english_generation'(in nfolks int)
BEGIN
declare exit handler for 1452
set @x = (nfolks - @x) * 0.7;
set @y = 0;
while @y < @x do
insert into volunteer2languageSPEAK(member_num, is 639_1)
values(@y+1, 'en');
insert into volunteer2languageREAD(member_num, is 639_1)
values(@y+1, 'en' or 'fr' or 'hi');
set @y = @y + 1;
end while;
END
И хинди:
procedure 'hindi_generation'(in nfolks int)
BEGIN
declare exit handler for 1452
set @t = (nfolks - @x) * 0.5;
set @r = 0;
while @r < @t do
insert into volunteer2languageSPEAK(member_num, is 639_1)
values(@r+1, 'hi');
insert into volunteer2languageREAD(member_num, is 639_1)
values(@r+1, 'hi' or 'fr' or 'en');
set @r = @r + 1;
end while;
END
Мы застряли, наша цель - иметь возможность выполнять анализ запросов в конце с указанными c операторами выбора, и нам нужно убедиться, что языки
Любая помощь очень ценится.