|
Имена аргументов в хранимых функциях
|
|||
---|---|---|---|
#18+
Добрый день Уважаемые! Я тут словил в своём приложении баг/не баг, а особенность которую для себя хочу прояснить с вашей помощью. Значит я придерживаюсь правила, что переменные в программе указывающие на данные из БД - называются одинаково с полями на данные которых они указывают. Имеется к примеру таблица: Код: sql 1. 2. 3. 4. 5. 6.
И значит описываю функцию которая чистит данные по какому-то признаку: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
И как вы наверное уже поняли, при выполнении функции удалялись просто все данные с isActive=0, независимо от аргумента. А так я написал, т.к. по незнанию решил что по аналогии с использованием аргументов в SELECT'е - значит БД сама догадывается что в правой части именно аргумент а не имя поля. Но после выявления этого бага/фичи понял что наверное в SELECT'ах я всегда использую алиасы для таблиц и поэтому выражение aa.AU_DataID=AU_DataID однозначно расхуюживается где аргумент, а где поле, а в DELETE т.к. алиасов нет то и просто получается что поле=полю. Итого собственно чего прошу-то, какие вообще стандарты или рекоммендации по именованию аргументов для хранимых функций/процедур? Пока для себя решил это добавлением аргументам _, т.е. _AU_DataID, но уж коли обжегся, то сразу хочу правильно сделать. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2020, 19:56 |
|
Имена аргументов в хранимых функциях
|
|||
---|---|---|---|
#18+
kormot, Код: sql 1. 2. 3.
AU_DataID=AU_DataID всегда true, догадайся сам почему Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2020, 20:23 |
|
Имена аргументов в хранимых функциях
|
|||
---|---|---|---|
#18+
kormot я придерживаюсь правила, что переменные в программе указывающие на данные из БД - называются одинаково с полями на данные которых они указывают Не, не в смысле изменять имена переменным. Наоборот. Уж если умеешь придерживаться правил, добавь ещё одно правило, причём с максимальным приоритетом. Правило такое: Каждое имя поля всегда содержит в своём составе алиас таблицы, из которой оно берётся. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2020, 21:30 |
|
Имена аргументов в хранимых функциях
|
|||
---|---|---|---|
#18+
Akina Каждое имя поля всегда содержит в своём составе алиас таблицы, из которой оно берётся. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2020, 22:06 |
|
Имена аргументов в хранимых функциях
|
|||
---|---|---|---|
#18+
Akina Каждое имя поля всегда содержит в своём составе алиас таблицы, из которой оно берётся. С первым соглашусь, второе спорно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2020, 22:48 |
|
Имена аргументов в хранимых функциях
|
|||
---|---|---|---|
#18+
Akina , я так и делаю всегда и уже довольно давно. Только так делал для SELECT'ов и UPDATE'ов, где алиасы таблицам прописать можно. Про DELETE вот недокумекал, хотя на заре знакомства с БД использовал запись не алиаса а имятаблицы.поле, но когда открыл себе алиасы - то сразу перестал использовать имена таблиц т.к. они длинные. А сейчас вот вернусь с DELETE'ами к истокам так сказать :) Спасибо, полезный пунктик мне отметили. Вадя - тоже спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2020, 22:54 |
|
Имена аргументов в хранимых функциях
|
|||
---|---|---|---|
#18+
miksoft В смысле всегда указывать алиас таблицы (table.field) или прям в само имя поля втаскивать (table.table_field) ? Да кому оно надо - префикс имени таблицы в самом имени поля? у полей префиксы используют для иных целей - указать тип данных, указать, что это FK, и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 07:41 |
|
|
start [/forum/topic.php?fid=47&fpage=20&tid=1828533]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 138ms |
0 / 0 |