Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с БД в Asp

422
01 сентября 2005 года
Dimarik
181 / / 12.02.2005
Подскажите, в скрипте на ASP нужно удалять записи в БД, только когда их количество превышает 100. Как удалить, допустим, только 30 самых старых записей. Ведь запрос на удаление DELETE удаляет или все записи, или по какому-то условию (WHERE).

[COLOR=red]Заранее спасибо.[/COLOR]
304
02 сентября 2005 года
Fenyx
707 / / 26.01.2005
Цитата:
Originally posted by Dimarik
Подскажите, в скрипте на ASP нужно удалять записи в БД, только когда их количество превышает 100. Как удалить, допустим, только 30 самых старых записей. Ведь запрос на удаление DELETE удаляет или все записи, или по какому-то условию (WHERE).

[COLOR=red]Заранее спасибо.[/COLOR]


1. Вариант создать в БД поле отвечающее за старение и удалять по нему с помощью WHERE.
2. поищи описание TOP и удаляй через ORDER BY desc, я не помню как создавать запросы с помощью TOP но должно сработать.

422
02 сентября 2005 года
Dimarik
181 / / 12.02.2005
Цитата:
Originally posted by Fenyx
1. Вариант создать в БД поле отвечающее за старение и удалять по нему с помощью WHERE.
2. поищи описание TOP и удаляй через ORDER BY desc, я не помню как создавать запросы с помощью TOP но должно сработать.



Да, этот вариант я уже рассматривал. И пока он единственный. Т.е. сделать поле Счётчик, в нём будет считаться кол-во сообщений. Причём, самые старые будут иметь меньший порядковый номер => с ростом числа сообщений, растёт значение счётчика. А будет ли работать ASP-скрипт с числами, к примеру, "97885749844333434". :???:
Может как-нибудь связать со временем поступления сообщений? Не знаю, думал на эту тему. Но у меня получается так, сколько лишних сообщений столько же запросов... :???:

832
02 сентября 2005 года
Carpus
390 / / 14.04.2005
Зачем же так сложно. Надо просто добавить поле типа timestamp (или DateTime), первым запросом посчитать общее количество (ОК) записей, а вторым удалить ОК-100 самых старых записей.
422
02 сентября 2005 года
Dimarik
181 / / 12.02.2005
Цитата:
Originally posted by Carpus
Зачем же так сложно. Надо просто добавить поле типа timestamp (или DateTime), первым запросом посчитать общее количество (ОК) записей, а вторым удалить ОК-100 самых старых записей.


Вопрос такой, можно ли сравнить два значения даты. Например, Date1>=Date2? Если можно, то на самом деле всё просто.

832
02 сентября 2005 года
Carpus
390 / / 14.04.2005
Можно.
299
02 сентября 2005 года
3D Bob
885 / / 18.04.2005
А разве LIMIT в ДЕЛИТ не работает?
2.2K
02 сентября 2005 года
Web-master
113 / / 23.12.2004
Цитата:
Originally posted by 3D Bob
А разве LIMIT в ДЕЛИТ не работает?


Конечно работает:

 
Код:
DELETE FROM same_table LIMIT 10;
832
02 сентября 2005 года
Carpus
390 / / 14.04.2005
Вот как звучал вопрос:

Цитата:
нужно удалять записи в БД, только когда их количество превышает 100. Как удалить, допустим, только 30 самых старых записей.



Как удалить последние записи с помощью limit я что-то не представляю.

832
02 сентября 2005 года
Carpus
390 / / 14.04.2005
Цитата:
Originally posted by Carpus
[BКак удалить последние записи с помощью limit я что-то не представляю.



Конечно же не последние, а самые ранние записи можно удалить delete from tbl_name limit n. Но только при условии, что они не модифицировались.

299
02 сентября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by Carpus
Вот как звучал вопрос:



Как удалить последние записи с помощью limit я что-то не представляю.



ORDER BY ID ASC
ORDER BY timestamp ASC

832
02 сентября 2005 года
Carpus
390 / / 14.04.2005
Если БД MySQL, так order by поддерживается начиная с 4.0
299
02 сентября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by Carpus
Если БД MySQL, так order by поддерживается начиная с 4.0


Чушь! Он его поддерживает с первой версии, иначе б грош цена была бы БД у которой нету внутренего порядка.

832
02 сентября 2005 года
Carpus
390 / / 14.04.2005
Я имел в виду delete ... order by http://dev.mysql.com/doc/mysql/en/delete.html
304
02 сентября 2005 года
Fenyx
707 / / 26.01.2005
Цитата:
Originally posted by Web-master
Конечно работает:
 
Код:
DELETE FROM same_table LIMIT 10;


Воощет наскоко я знаю LIMIT [COLOR=red]НЕ[/COLOR] работает ни в MSSQL ни в Аксесе. Используеться другая команда - TOP. А поскольку вопрос по ASP то навряд там стоит другая база.

299
02 сентября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by Fenyx
Воощет наскоко я знаю LIMIT [COLOR=red]НЕ[/COLOR] работает ни в MSSQL ни в Аксесе. Используеться другая команда - TOP. А поскольку вопрос по ASP то навряд там стоит другая база.



ЛИМИТ не работает в аксесе. Мелкомягкие как всегда выделелись против стандарта SQL. А вот в мускуле он блистает. С помощью нео делают постраничный вывод информации. Я это не знаю. Я это использовал.

304
03 сентября 2005 года
Fenyx
707 / / 26.01.2005
Цитата:
Originally posted by 3D Bob
ЛИМИТ не работает в аксесе. Мелкомягкие как всегда выделелись против стандарта SQL. А вот в мускуле он блистает. С помощью нео делают постраничный вывод информации. Я это не знаю. Я это использовал.



Мускул - ты подразумеваешь MSSQL или MySQL?

299
03 сентября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by Fenyx
Мускул - ты подразумеваешь MSSQL или MySQL?


Сорри.... начит Лимит не работает)))))) потому что мелкомягкие=)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог