Вот было сегодня в некой записи 500, к вечеру стало 0, или 124. А завтра, автоматом, опять должно стать 500. Так вот вопрос: можно ли это сделать средствами самой бд, или надо сделать некоторый костыль, который будет обновлять эти данные?
Вот было сегодня в некой записи 500, к вечеру стало 0, или 124. А завтра, автоматом, опять должно стать 500. Так вот вопрос: можно ли это сделать средствами самой бд, или надо сделать некоторый костыль, который будет обновлять эти данные?
Товарищи! Если Вам не сложно, то дайте, пожалуйста, направление :-) Хотел спросить, но особо не у кого. Суть вопроса вот в чём: есть некоторая БД. Количество таблиц в ней может изменяться в зависимости от необходимости и требований того, кто ею пользуется. То есть, в моём случае, у меня практически всегда, к примеру, усть таблица idx245a, но в ином случае может потребоваться таблица idx246 или 246a, idx241 и так далее. Таких таблиц может быть до двух тысяч и их наличие или отсутствие в БД не обязательно для разных людей, как я говорил выше. Так вот, каким способом решаются такие проблемы в java? Как мне написать свой код так, чтобы можно было не описывая всех таблиц (я сейчас пытаюсь изучить ormlite), в будущем с ними работать, если это будет необходимо?
Народ, правильно ли я всё сделал? DELETE FROM doc WHERE 1< (SELECT count(*) FROM doc d2 WHERE DOC.item like d2.item) Из 2755 записей т. о. у меня удалилось 1783. Хотел удалить просто одинаковые записи.
ЧЯДНТ? ERROR: Error executing 'CREATE TABLE IF NOT EXISTS `mainSQL`.`BOOKSTATES` ( `IDBS` INT NOT NULL AUTO_INCREMENT , `RDR_ID` VARCHAR(128) NULL , `INV_ID` INT NULL , `DOC_ID` INT NULL , `STATE` INT NULL , `IDP` INT NULL , `CHSDATE` DOUBLE NULL , `RETDATE` DOUBLE NULL , `FLAGS` VARCHAR(64) NULL , `IDS` INT NULL , `upsize_ts` TIMESTAMP(0) NULL , PRIMARY KEY (`IDBS`) , INDEX `Rel_8A9BD279_80FB_450A` (`IDP` ASC) , CONSTRAINT `BOOKSTATES_FK00` FOREIGN KEY (`IDP` ) REFERENCES `mainSQL`.`BOOKPOINTS` (`IDP` ) ON DELETE NO ACTION ON UPDATE NO ACTION) COLLATE = utf8_general_ci' You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(0) NULL , PRIMARY KEY (`IDBS`) , INDEX `Rel_8A9BD279_80FB_450A` (`IDP` ASC)' at line 12. SQL Error: 1064
ERROR: Error executing 'CREATE TABLE IF NOT EXISTS `mainSQL`.`BOOKSTATES` ( `IDBS` INT NOT NULL AUTO_INCREMENT , `RDR_ID` VARCHAR(128) NULL , `INV_ID` INT NULL , `DOC_ID` INT NULL , `STATE` INT NULL , `IDP` INT NULL , `CHSDATE` DOUBLE NULL , `RETDATE` DOUBLE NULL , `FLAGS` VARCHAR(64) NULL , `IDS` INT NULL , `upsize_ts` TIMESTAMP(0) NULL , PRIMARY KEY (`IDBS`) , INDEX `Rel_8A9BD279_80FB_450A` (`IDP` ASC) , CONSTRAINT `BOOKSTATES_FK00` FOREIGN KEY (`IDP` ) REFERENCES `mainSQL`.`BOOKPOINTS` (`IDP` ) ON DELETE NO ACTION ON UPDATE NO ACTION) COLLATE = utf8_general_ci' You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(0) NULL , PRIMARY KEY (`IDBS`) , INDEX `Rel_8A9BD279_80FB_450A` (`IDP` ASC)' at line 12. SQL Error: 1064
Народ, может поможете? Может кто-то сталкивался с таким? Суть проблемы такова: когда-то давно (в 2009) некий хакер "восстановил" 700 записей БД. Каким образом он это сделал и сделал ли вообще - не ясно. Кто он и откуда - загадка. Но, с тех пор счётчик записей БД показывает неверные цифры. Они сильно меньше. Как мне найти различия в структуре данных? Хотя, по идее, всё верно и всё на месте. Уточню, что была БД access, недавно я её перенёс на MS SQL. Возможно, что различий в структуре нет. Я уже пробовал найти пустые записи. Но ответ был отрицательным. Их нет. Я пробовал найти одинаковые записи и в предыдущем своём посте написал запрос. Ответ отрицательный. Возможно, что он заполнил таблицу случайными данными. Тогда найти их получается никак. Но это едва ли могло сказаться на счётчиках. Я сейчас посмотрю ещё на запросы, которые использует программа, но едва ли что-то полезное там есть.
SELECT * FROM doc d1
WHERE 1<
(SELECT count(*)
FROM doc d2
WHERE d1.item like d2.item)
Сдохни, марк, сдохни!
SELECT MAX(doc_id) FROM doc AS T1 WHERE doc.item = T1.item GROUP BY doc_id ЧЯДНТ? Всё это делалось как тестовый запрос, чтобы удалить дублирующие записи. Предыдущий админ сделал так, что в таблицу попали дублирующие записи с новыми id. Мне нужно их вычистить. Но сейчас я даже выборку сделать не могу нормальную. Если спросите чем руководствовался, когда запрос писал, то http://www.sql-ex.ru/help/select17.php?Lang=0 Принцип тот же. Я хотел сделать выборку, не создавая никаких вспомогательных таблиц и удалить дубликаты. Any ideas?
SELECT MAX(doc_id) FROM doc AS T1 WHERE doc.item = T1.item group by doc_id Что с запросом не так? Кто-нибудь знает? (Про оператор AS я знаю. Специально удалил. С ним тоже не работает.)
UPDATE SIGLAS SET t090f = 'оли' WHERE ID = 7
Перед этим было получено после select * from SIGLAS where 1=1
ID,SHORTNAME,STORAGE,ACCLEVEL
1,*,,
4,кх,,
5,мбо,,
6,нмо,0,
7,ои,0,
8,ооп,0,
9,оод,0,
11,дир,0,
13,ппо,0,
14,зам.дир,0,0
15,эчз,0,0
OK
А сейчас оно чего-то спршивает. Говорит, что не хватает одного параметра. Ругается матом 07002. Чего оно на самом деле хочет?
Схема БД состоит из четырех таблиц:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, price, screen)
Printer(code, model, color, type, price)
Таблица Product представляет производителя (maker), номер модели (model) и тип ('PC' — ПК, 'Laptop' — ПК-блокнот или 'Printer' — принтер). Предполагается, что номера моделей в таблице Product уникальны для всех производителей и типов продуктов. В таблице PC для каждого ПК, однозначно определяемого уникальным кодом – code, указаны модель – model (внешний ключ к таблице Product), скорость — speed (процессора в мегагерцах), объем памяти — ram (в мегабайтах), размер диска — hd (в гигабайтах), скорость считывающего устройства — cd (например, '4x') и цена — price. Таблица Laptop аналогична таблице РС за исключением того, что вместо скорости CD содержит размер экрана -screen (в дюймах). В таблице Printer для каждой модели принтера указывается, является ли он цветным — color ('y', если цветной), тип принтера — type (лазерный – 'Laser', струйный – 'Jet' или матричный – 'Matrix') и цена — price.
Задание 1: Найти производителей, которые выпускают более одной модели, при этом все выпускаемые производителем модели являются продуктами одного типа.
Вывести: maker, type
Задание 2:
Удалить все блокноты, выпускаемые производителями, которые не выпускают принтеры.
Помогите, а то туплю ужасно :(
Хотя, наверное, это дурацкая привычка от Oracle осталась. Там немного другой синтаксис запросов, чуть отличный от MySQL.
А ещё тупее то, что нужно писать запросы на бумажке при сдаче. Как тут проверить?