|
|
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Приветствую всех! Пытаюсь сделать следующую процедуру Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. В операторе SELECT вместо имени таблицы стоит переменная, которая содержит имя таблицы (заранее имя таблицы не известна). Однако переменная tableName воспринимается как имя таблицы и MySQL говорит, что такой таблицы не знает. Как ни пробовал ни пробовал ничего не получается. Что посоветуете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 13:37:51 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 13:59:29 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Благодарю за отклик. Получилось следующее. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Но теперь MySQL не признаёт выходную переменную SeatStatus. При вызове процедуры пишет - ERROR 1193 (HY000): Unknown system variable 'SeatStatus'. Как теперь это обойти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 15:09:37 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok. Как ни пробовал ни пробовал ничего не получается. Что посоветуете? Про prepared statement тебе уже сказали, но вообще если тебе такое нужно, то у тебя что-то совсем не так с подходом к проектированию базы данных. не должно такое быть необходимо в нормальной бд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 16:14:58 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Что конкретно не так с проектированием БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 16:36:07 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Пришлось переделать следующим образом. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Но для того, чтобы вызвать процедуру необходимо сначала определить глобальные переменные, которые используются в процедуре. Код: sql 1. 2. Так работает. Оценивая на такую конструкцию как программист, я понимаю что что-то не так. Это моя первая база. Может поможите советом по исправлению "что-то не так"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 17:18:10 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
смысл в следующем (дополню MasterZiv) На простых вещах (абстрагируемся от вашей темы, хотя вы ее и не показали) 1. у вас есть объект ТОВАРЫ, эта "сущность" должна быть описана одной таблицей с полем ТИП (холодильник, микроволновка и т.д) 2. у вас же под каждый тип своя таблица. Это в корне не правильно. При подходе 2 вам придется стряпать Prepare statement для каждого товара При подходе 1 - достаточно SELECT * FROM Tovar WHERE tovar_type="холодильник" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 18:55:18 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Исправляюсь. Мне необходимо сделать электронную кассу для нескольких кассиров для продажи билетов на различные мероприятия. Разумеется необходима одна база, с которой они все будут работать. Есть одна таблица (MyISAM), которая содержит первичные данные по мероприятию: кто, где, с чем, и т.д. и в том числе название таблицы концертного зала. Получается, что одной записи таблицы с первичными данными о мероприятии соответствует одна вновь создаваемая таблица концертного зала. Концертных залов несколько, поэтому по своей структуре таблицы залов разнятся, так как похожих залов нет. Таблица концертного зала (InnoDB) содержит номер места, признак занятости и цену. То есть одна строка - одно место. Тип InnoDB + одно место сделано одной строкой для того, чтобы при транзакции были блокированы только те места, с которыми в данный момент времени работает кассир. Как-то так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:13:17 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Как, вы считаете это надо изменить, чтобы "вогнать" БД с стандартные рамки, не упуская возможности однострочной ("одноместовой") блокировки при транзакции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:18:06 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
две таблицы первая продажи вторая конц зал (места) с полем (концертзал) все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:33:50 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok....кто, где, с чем, и т.д. и в том числе название таблицы концертного зала ...Концертных залов несколько, поэтому по своей структуре таблицы залов разнятся, так как похожих залов нет. - общая таблица Места в ззалах с полем Наим зала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:41:05 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokЧто конкретно не так с проектированием БД? структура неправильная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:45:42 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokИсправляюсь. Мне необходимо сделать электронную кассу для нескольких кассиров для продажи билетов на различные мероприятия. Разумеется необходима одна база, с которой они все будут работать. Есть одна таблица (MyISAM), которая содержит первичные данные по мероприятию: кто, где, с чем, и т.д. и в том числе название таблицы концертного зала. Получается, что одной записи таблицы с первичными данными о мероприятии соответствует одна вновь создаваемая таблица концертного зала. Концертных залов несколько, поэтому по своей структуре таблицы залов разнятся, так как похожих залов нет. ну вот это и есть ошибки в проектировании бд. не должно быть такого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:49:20 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokКак, вы считаете это надо изменить, чтобы "вогнать" БД с стандартные рамки, не упуская возможности однострочной ("одноместовой") блокировки при транзакции? дай мне структуру твоей бд, тогда я смогу сказать, как изменить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:50:29 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 20:40:11 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
две одинаковые картинки подряд получились... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 20:41:08 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok, нет мне надо не это, а Create table для всех таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 21:24:40 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 21:33:33 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Это чё за шизонутый бред ? Эт идиотизм какой-то, я тут нихрена не понимаю. во-первых прежде всего в MyISAV нет FOREIGN KEY, он их просто не поддерживает. Так что либо FOREIGN KEY + Inno, либо MyISAM. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Эт ещё более -- менее. много дебилизма, конечно, но ничего. Код: plaintext Код: plaintext 1. 2. Код: plaintext 1. 2. -- у тебя же не один день и час будет спектакль или что там.. А несколько дней и несколько спектаклей/шоу в день. Нужно делать отдельно расписание. А вот дальше идёт полный идиотизм Код: sql 1. 2. 3. 4. 5. 6. 7. Получается таблица из двух полей -- ID и ЦВЕТ. На кой такая вообще нужна? Пиши сразу ЦВЕТ вместо ссылки на ЦВЕТ. Если бы это был бы список городов, список стран -- понятно. Но это -- атомарное самодостаточное значение. Ни на хрен не нужен словарь. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Место, признак занятости и цвет. ОК, и как это всё со спектаклями и залами связано ? Не говоря уже о том, что место там обычно имеет РЯД, НОМЕР МЕСТА, и что-то типа того. Название хотя бы места должно быть ? Так что извини, правильной структуры тебе не будет. В общем, вместо того, чтобы проектировать БД нормально, ты пьёшь неумеренно пиво и мучаешь людей идиотскими вопросами из цикла "как сделать то, что никогда делать вообще не надо". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2016, 18:48:39 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Посмотрев данные "замечания", да еще сделанные в такой манере, делаю вывод - помощи не дождаться. Все "критика" свелась к не структуре БД, а к тому что "это поле лишнее и это тоже". До конца не понимая что нужно, делать такие выводы, мягко говоря, преждевременно. Если не хватает информации - спроси, из моих сообщений очевидно, что я готов предоставить что угодно. Самое главное, что всё сказанное не то чтобы явно не разрешает, но и не приближает к ответу на поставленный вопрос - "Что не так в структуре БД?". Итак, теперь об идиотизме и пр. MasterZivПро prepared statement тебе уже сказали, но вообще если тебе такое нужно, то у тебя что-то совсем не так с подходом к проектированию базы данных. не должно такое быть необходимо в нормальной бд. Если берешься писать сообщение выражай свои мысли ясно, а не загадками. Любая мысль должна быть логически структурирована и закончена (анализ, критика, вывод, рекомендация) - это означает что в конце должен быть вывод, являющийся руководством к действию. Интересно, сколько лет моему советчику, если приходится ему это писать? MasterZivструктура неправильная. Ну наконец-то удалось дотянуть мысль моего "советчика" практически до середины её выражения! MasterZivну вот это и есть ошибки в проектировании бд. не должно быть такого. Чего "такого"? Опять загадки... MasterZivдай мне структуру твоей бд, тогда я смогу сказать, как изменить. Здесь выясняется, что критика была сделана без анализа. Ведь для анализа необходимы исходные данные, которые мой "советчик" запросил практически в самом конце. MasterZivнет мне надо не это, а Create table для всех таблиц. Непонятно как представленная схема не даёт представление о структуре БД ... MasterZivЭто чё за шизонутый бред ? ... И в конечном итоге, чтобы получить совет я трачу время - рисую схемы и пр. Для чего? Для того, чтобы стать свидетелем того, как один индивид встал на четвереньки и просто начал гавкать. Если я захочу зоопарк, я пойду в зоопарк. Однако это форум ... Благодарю Alex_Ustinov за совет. Я его использовал - все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2016, 22:39:10 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokПосмотрев данные "замечания", да еще сделанные в такой манере, делаю вывод - помощи не дождаться. Все "критика" свелась к не структуре БД, Да не в манере дело, и не в критике. А в отсутствии структуры БД как таковой вообще. Поясни ДЕТАЛЬНО твои create table, чтобы было что-то понятно. Я тебе детально расписал, что у тебя непонятно. Вот поясни, где у меня вопросы. Да, про пиво -- это я тебя спутал, извини, не ты это был.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2016, 23:08:34 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokСамое главное, что всё сказанное не то чтобы явно не разрешает, но и не приближает к ответу на поставленный вопрос - "Что не так в структуре БД?". Наоборот, там всё очень ясно и близко к ответу. Фактически у тебя НЕТ никакой структуры БД вообще. Дальше цитаты не буду оформлять, извините... Если берешься писать сообщение выражай свои мысли ясно, а не загадками. Любая мысль должна быть логически структурирована и закончена (анализ, критика, вывод, рекомендация) - это означает что в конце должен быть вывод, являющийся руководством к действию. Я выражал свою мысль предельно ясно. Ещё раз: Если тебе нужно подтавлять в производственной БД имя таблицы в запрос в виде данных, у тебя неверно спроектирована база, её надо переделывать. У тебя не должно быть ни переменного числа таблиц в БД, ни "массивов таблиц", закодированных в их именах. Здесь выясняется, что критика была сделана без анализа. Ведь для анализа необходимы исходные данные, которые мой "советчик" запросил практически в самом конце. Чтобы сделать анализ, нужно понимать что-то. Твоя структура абсолютно непонятна, в ней нет мыслей. Непонятно как представленная схема не даёт представление о структуре БД ... Это и есть структура БД. Она даёт о структуре БД непосредственное представление. MasterZivЭто чё за шизонутый бред ? ... И в конечном итоге, чтобы получить совет я трачу время - рисую схемы и пр. Для чего? Для того, чтобы стать свидетелем того, как один индивид встал на четвереньки и просто начал гавкать. Если я захочу зоопарк, я пойду в зоопарк. Однако это форум ... Да ладно ты, ну, поругался я немного, ничего страшного. Но схема-то действительно бред сумашедшего. Благодарю Alex_Ustinov за совет. Я его использовал - все работает. Ну, ты можешь и дальше жить с кривой базой и мужественно преодолевать трудности, которых вообще не должно быть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2016, 23:15:55 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok, препаре статемент это костыль ... дальше у вас будут проблемы реально что нам нужно - Регистрация покупки билета с местом-рядом в кинотеатр таким то кассиром таблицы 0. Кассиры KS 1. Мероприятия MP 2. Кинотеатры KT ---- Нужна опорная жесткая таблица место-ряд для каждого кинотеатра (одна на все) (id / id_kt / mesto / ryad ) MST 3. Таблица регистрации покупки билета на мероприятие в КиноТеатре REG_MP_KT при покупке INSERT idKS, idMP, idKT, idMST..... все, записали, что билет куплен (число где-то присоорудите) по моему очень просто из такой структуры вы найдете несложными запросами Свободные места и все остальное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 01:15:50 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov, ну надо сказать что на самом деле предметная область достаточно сложна, потому что структура залов очень разная, и её сложно формализовать, мы такое делали, очень сложная предметка. но сложна она не с точки зрения бд, а просто анализа. а по бд там все правильно. но там таблиц 20 30 должно быть, но никак не 4 ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 08:17:06 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, конечно таблиц может быть по необходимости гораздо больше, просто более менее простой и правильный костячок не помешал бы ...остальное можно прикрутить по ходу. Насчет залов - да. структура может быть сложная - галерки...фигорки и т.д. но можно тоже закодировать, на клиенте для визуализации распарсить... Схема то простая, как покупка ж/д билета на одноименном сайте....... есть поезд-вагон с местами, покупаем билетик ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 09:04:12 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39153712&tid=1832225]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 198ms |
| total: | 492ms |

| 0 / 0 |
