![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
Главная / Каталог блогов / Cтраница блогера Блог разработчика программного обеспечения / Запись в блоге
![]()
Поддержка PostgreSQL в Корпорации 22009-11-03 00:31:00 (читать в оригинале)Итак, в качестве основной базы данных мы будем использовать - PostgreSQL. Но, при этом, все равно тестироваться и работать должно будет в MySQL и Firebird. Поэтому, в необходимо приходить к стандартам, которые устроит как MySQL так и PostgreSQL. Рассмотрим для примера запрос: select MK.KARTA_ID, MK.P_BALANS, MK.P_VLASN, MK.P_ZALOG, MK.P_UGON, MK.MARKA_ID MARKA_ID,MK.VID_ID, MK.ZAV_NOMER ZAV_NOMER, MK.DVIG_NOMER DVIG_NOMER, MK.NSHAS, MK.YEAR_PROD, MK.SER_SVID SER_SVID, MK.DATA_SVID, MK.SER_ZNAK, MK.DATE_NUM, MK.KOD_F, MK.KOD_USER, MK.OLD_ID, MK.DATA_EDIT, MK.DATE_INSERT, MK.DATE_DELETE, MK.IS_DELETED, MK.DATE_COMPILE, MK.DATE_UPDATE, MK.ID_REGION_KOD ID_REGION_KOD, MK.ID_RAJON ID_RAJON, MK.ID_VID, MK.ID_KOD_F, MK.NAME_ORG NAME_ORG, MK.NAME_VID NAME_VID, MK.UPPER_ZAV_NOMER, MK.UPPER_DVIG_NOMER, MK.UPPER_NSHAS, MK.UPPER_SER_SVID, MK.UPPER_SER_ZNAK, MK.DATA_SPISAN, MK.ADDR_ORG, MK.P_REG, MK.DATA_FIRST_REG, MK.D_OLDSVID, MK.N_OLDSVID, MK.YEAR_SVID, MK.YEAR_NUM, MK.YEAR_SPISAN, MK.YEAR_FIRST_REG,MK.YEAR_ OLDSVID, MK.DATA_BALANS, MK.REGION_BALANS, MK.RAJON_BALANS, R.REGION_NAME, MO.KOD_EDRPO, MO.N_PASSP from MTP_KARTA MK left join TBLREGIONS R on MK.ID_REGION_KOD=R.ID_REGION_KOD left join MTP_ORG MO on (MK.ID_KOD_F=MO.ID_KOD_F) and (MK.ID_REGION_KOD=MO.ID_REGION_KOD) where (MK.MARKA_ID<>') and (MK.DATA_SPISAN is null) and(MK.NAME_ORG like '%трактор%') order by MARKA_ID limit 0, 50 Данный запрос прекрасно работает в MySQL, но совершенно не работает в PostgreSQL. Чтоб работаело и там и там нужно писать на подобии: select MK.KARTA_ID, MK.P_BALANS, MK.P_VLASN, MK.P_ZALOG, MK.P_UGON, MK.MARKA_ID as MARKA_ID, MK.VID_ID, MK.ZAV_NOMER as ZAV_NOMER, MK.DVIG_NOMER as DVIG_NOMER, MK.NSHAS, MK.YEAR_PROD, MK.SER_SVID as SER_SVID, MK.DATA_SVID, MK.SER_ZNAK, MK.DATE_NUM, MK.KOD_F, MK.KOD_USER, MK.OLD_ID, MK.DATA_EDIT, MK.DATE_INSERT, MK.DATE_DELETE, MK.IS_DELETED, MK.DATE_COMPILE, MK.DATE_UPDATE, MK.ID_REGION_KOD as ID_REGION_KOD, MK.ID_RAJON as ID_RAJON, MK.ID_VID, MK.ID_KOD_F, MK.NAME_ORG as NAME_ORG, MK.NAME_VID as NAME_VID, MK.UPPER_ZAV_NOMER, MK.UPPER_DVIG_NOMER, MK.UPPER_NSHAS, MK.UPPER_SER_SVID, MK.UPPER_SER_ZNAK, MK.DATA_SPISAN, MK.ADDR_ORG, MK.P_REG, MK.DATA_FIRST_REG, MK.D_OLDSVID, MK.N_OLDSVID, MK.YEAR_SVID, MK.YEAR_NUM, MK.YEAR_SPISAN, MK.YEAR_FIRST_REG,MK.YEAR_OLDSVID, MK.DATA_BALANS, MK.REGION_BALANS, MK.RAJON_BALANS, R.REGION_NAME, MO.KOD_EDRPO, MO.N_PASSP from MTP_KARTA MK left join TBLREGIONS R on MK.ID_REGION_KOD=R.ID_REGION_KOD left join MTP_ORG MO on (MK.ID_KOD_F=MO.ID_KOD_F) and (MK.ID_REGION_KOD=MO.ID_REGION_KOD) where (MK.MARKA_ID<>') and (MK.DATA_SPISAN is null) and(MK.NAME_ORG like '%трактор%') order by MARKA_ID limit 50 offset 10 В чем отличие ? 1. Псевдоним поля задается через as: MK.ZAV_NOMER as ZAV_NOMER 2. В Limit указывается не: limit 10,50 а: limit 50 offset 10 Такие конструкции работают как в mysql, так и в postgresql. У меня есть подозрение, что они есть стандартом SQL, т.е. вероятность срабатывания и в других серверах высокая.
|
![]() ![]() ![]()
Категория «Новости»
Взлеты Топ 5
Падения Топ 5
![]()
Популярные за сутки
|
Загрузка...

BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.