Jeg har i sin tid lavet et kæmpe view, der erstattede en løkke, der tog 15
min, med et view, der laver det samme på 5 sekunder.
Nu skal jeg lave en replikering, så skal jeg lave en mysqldump og en restore
på den anden maskine.
Men mysqldump laver noget vrøvle-sql, når jeg laver export, og "show create
view <navn>":
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`1.2.3.4` SQL SECURITY DEFINER
VIEW `rating` AS select
`ProfilesTrack`.`Profile` AS `profile`,
`Profiles`.`NickName` AS `Nickname`,
((((((5 * (ifnull((select sum(((case `pf1`.`isreal` when _utf8'Ja' then 2
when _utf8'Nej' then -(1) else 1 end) / (1 +
log((timestampdiff(DAY,`pf1`.`LastLoggedIn`,now()) + 1))))) AS `sum((case
isreal when 'Ja' then 2 when 'Nej' then -1 else 1 end)/(1+log(timestampdiff
.... masse sql....
then 2 when _utf8'Nej' then 0 else 1 end)) * (1 / (1 +
log((timestampdiff(DAY,`Profiles`.`LastLoggedIn`,now()) + 10))))) * (case
`Profiles`.`Status` when _utf8'Active' then 1 else 0 end)) AS `h` from
(`Profiles` left join `ProfilesTrack` on((`Profiles`.`ID` =
`ProfilesTrack`.`Profile`))) group by `ProfilesTrack`.`Profile` order by 3
desc
Viewet skal bare lave 3 koloner, profile, Nickname og h, men det vrøvl med
"AS `sum((case isreal when 'Ja' then 2 when 'Nej' " som et alias er jo
forkert...
View'et virker, men MySql kan åbenbart ikke vise det.
Er der andre metoder man kan få et view ud?
Jeg har desværre ikke sourcen til view'et liggende.
Leif
|