Как оценить переменные оболочки в строке?

В моем скрипте Perl я получаю строки путей к файлам, которые могут содержать переменные среды, например, $ FONTS / test.ttf. или $ TMP / file.txt .

Теперь я хочу открыть эти файлы следующим образом:

open my $handle, "<$filename" or die $!;

Как теперь я могу развернуть переменные среды до вызова open, как, например, имя - VARCHAR (20) group - VARCHAR (20) Я знаю, что могу добавить следующую строку: INSERT INTO table_name (name, group) VALUES ...

У меня есть таблица со следующими столбцами:

  • id - INT НЕ ПОДПИСАНО AUTO_INCREMENT
  • имя - VARCHAR (20)
  • группа - VARCHAR (20)

Я знаю, что могу добавить такую ​​строку:

INSERT INTO table_name (name, group) VALUES ('my name', 'my group')

Интересно, есть ли способ добавить строку без указания имен столбцов , например, когда нет столбца AUTO_INCREMENT?

22
задан Misha Moroshko 16 August 2010 в 13:34
поделиться

3 ответа

Для некоторых баз данных вы можете просто явно вставить NULL в столбец auto_increment :

INSERT INTO table_name VALUES (NULL, 'my name', 'my group')
28
ответ дан 29 November 2019 в 04:44
поделиться

Еще лучше, используйте DEFAULT вместо NULL. Вы хотите сохранить значение по умолчанию, а не NULL, которое может вызвать значение по умолчанию.

Но вам лучше назвать все столбцы, с помощью фрагмента SQL вы можете создать все необходимые вам INSERT, UPDATE и DELETE. Просто проверьте information_schema и составьте нужные вам запросы. Нет необходимости делать все вручную, SQL может вам помочь.

11
ответ дан 29 November 2019 в 04:44
поделиться

Просто добавьте имена столбцов, да, вы можете использовать Null вместо этого, но это очень плохая идея - не использовать имена столбцов в любой вставке, никогда.

2
ответ дан 29 November 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: