Як напісаць запыт SQL, які не?

Мне патрэбны гэты запыт для апрацоўкі выключэнняў тэставання, таму я хацеў бы, што запыт не залежыць ад схемы. Я шукаю нешта накшталт SELECT 1; , але, вядома, не атрымаецца.

Я выкарыстоўваю Java і MySQL, але я спадзяюся знайсці адказы, якія не залежаць ад моў праграмавання і/або РСУБД.

1
Чаму б вам не скарыстацца момантам, каб паказаць на тое, што здарылася з гэтым пытаннем, перш чым downvote гэта?
дададзена аўтар muhuk, крыніца

11 адказы

Як наконт «SELECT 1/0» для пачатку?

5
дададзена
ну, гэта раздражняе і ІМХО не паводзіны я лічу правільным па змаўчанні, але я не хлопец MySQL :) Глядзі @HeadofCatering каментар ніжэй пра наладу sql_mode (вядома, што пазбаўляе гэты адказ як RDBMS-незалежнай.) Ёсць таксама іншы тып выключэнняў, якія вы можаце ці многія з іх не хочаце, каб праверыць, сінтаксічныя памылкі ў параўнанні з памылкамі рухавіка, напрыклад, - не ведаючы, як/што вы тэстуеце, гэта магло б быць магчыма гэтыя выключэння па іншым шляху праз дадатак?
дададзена аўтар Jim O'Neil, крыніца
Не падобна, каб працаваць у MySQL: вяртае NULL.
дададзена аўтар muhuk, крыніца

Як наконт «SELECT 1/0» для пачатку?

5
дададзена
ну, гэта раздражняе і ІМХО не паводзіны я лічу правільным па змаўчанні, але я не хлопец MySQL :) Глядзі @HeadofCatering каментар ніжэй пра наладу sql_mode (вядома, што пазбаўляе гэты адказ як RDBMS-незалежнай.) Ёсць таксама іншы тып выключэнняў, якія вы можаце ці многія з іх не хочаце, каб праверыць, сінтаксічныя памылкі ў параўнанні з памылкамі рухавіка, напрыклад, - не ведаючы, як/што вы тэстуеце, гэта магло б быць магчыма гэтыя выключэння па іншым шляху праз дадатак?
дададзена аўтар Jim O'Neil, крыніца
Не падобна, каб працаваць у MySQL: вяртае NULL.
дададзена аўтар muhuk, крыніца

Вы можаце змясціць недапушчальны маркер ў запыце

select doesnotexist.* from something_else

Або, вядома, што вы павінны зрабіць, гэта насмешка з метаду і яго выкінуць выключэнне падчас тэсту.

4
дададзена

Ёсць куча спосабаў, каб зрабіць запыт не атрымаецца, як mispelling поля, або выбраць з не існых табліц. напрыклад:

SELECT some_fake_field FROM table_that_doesnt_exists
2
дададзена

Ёсць куча спосабаў, каб зрабіць запыт не атрымаецца, як mispelling поля, або выбраць з не існых табліц. напрыклад:

SELECT some_fake_field FROM table_that_doesnt_exists
2
дададзена

Адзін са спосабаў, каб выклікаць адмову з'яўляецца выклікам захоўваемай працэдуры з няправільным лікам параметраў. Іншая падобная ідэя заключаецца ў тым, каб напісаць заяву абнаўлення/устаўкі з няправільным колькасцю аргументаў ...

More ideas here: How to raise an error within a MySQL function

1
дададзена

Адзін са спосабаў, каб выклікаць адмову з'яўляецца выклікам захоўваемай працэдуры з няправільным лікам параметраў. Іншая падобная ідэя заключаецца ў тым, каб напісаць заяву абнаўлення/устаўкі з няправільным колькасцю аргументаў ...

More ideas here: How to raise an error within a MySQL function

1
дададзена

Для таго, каб атрымаць 1/0 падняць памылку ў MySQL, вам неабходна ўсталяваць sql_mode ў ERROR_FOR_DIVISION_BY_ZERO.

Паспрабуйце гэта:

SET sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO';
SELECT 1/0;

Калі sql_mode не ўстаноўлены, MySQL верне NULL замест памылкі.

Вы можаце праверыць, што вашыя бягучыя налады з наступным:

SELECT @@GLOBAL.sql_mode;
SELECT @@SESSION.sql_mode;
0
дададзена

Для таго, каб атрымаць 1/0 падняць памылку ў MySQL, вам неабходна ўсталяваць sql_mode ў ERROR_FOR_DIVISION_BY_ZERO.

Паспрабуйце гэта:

SET sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO';
SELECT 1/0;

Калі sql_mode не ўстаноўлены, MySQL верне NULL замест памылкі.

Вы можаце праверыць, што вашыя бягучыя налады з наступным:

SELECT @@GLOBAL.sql_mode;
SELECT @@SESSION.sql_mode;
0
дададзена

Любая старая памылка сінтаксісу будзе рабіць ... незавершанаю радок

select 'bob
0
дададзена

Любая старая памылка сінтаксісу будзе рабіць ... незавершанаю радок

select 'bob
0
дададзена