Один из способов - создать 2 временные таблицы, заполнить их, а затем объединить, чтобы создать финальную таблицу. Общие шаги и (не проверенный) код приведены ниже.
1) Создайте временные таблицы
CREATE TEMPORARY TABLE temp_table_1 (
id INT,
a DECIMAL(19,2)
)
INSERT INTO TABLE temp_table_1 VALUES (1, 3.0)
INSERT INTO TABLE temp_table_1 VALUES (2, 4.0)
CREATE TEMPORARY TABLE temp_table_2 (
id INT,
b DECIMAL(19,2),
c DECIMAL(19,2)
)
INSERT INTO TABLE temp_table_2 VALUES (1, 1.0, 4.0)
INSERT INTO TABLE temp_table_2 VALUES (2, 2.0, 1.0)
2) Создайте свой финальный стол
CREATE TABLE table_1
AS
SELECT t1.id, t1.a, t2.b, (t1.a - t1.b) / t2.c as d
FROM table_1 AS t1
JOIN table_2 AS t2 ON t1.id = t2.id
В этом контексте есть два возможных значения слова «исполняемый файл», и оба этих параметра необходимо настроить.
Исполняемый двоичный файл, который можно запустить из командной строки, набрав имя файла в оболочке
Файл, который может быть прочитан и обработан как сценарий веб-сервером.
Обработка двоичного исполняемого файла
Для настройки на случай 1 в системе un * x Вы должны убедиться, что ваш каталог загрузки и файлы в нем принадлежат пользователю веб-сервера и доступны только для чтения этому пользователю. Каталог должен быть исполняемым; это означает, что файлы внутри этого каталога могут быть доступны). Если веб-пользователю необходимо перечислить файлы в каталоге, он также должен быть доступен для чтения. Конечно, он также должен быть доступен для записи, чтобы можно было создавать новые файлы.
Таким образом, восьмеричным набором, который вы хотите, будет
chown <web-server-user> <upload-dir>
chmod 0700 <upload-dir>
. Файлы не должны быть исполняемыми и должны быть доступны для чтения и записи только веб-сервером, поэтому они должны быть
chmod 0600 <uploaded-file>
. Обратите внимание, что это означает, что только Пользователь веб-сервера сможет увидеть эти файлы. Это лучшая ситуация для безопасности. Однако, если вам действительно нужны другие локальные пользователи, чтобы видеть эти файлы, используйте
chmod 0755 <upload-dir>
chmod 0644 <uploaded-file>
Обработка веб-сервера.
Кодирование для случая 2 зависит от веб-сервера.
Один из вариантов - разместить каталог для загрузки за пределами корневого каталога, полностью отключив прямой URL-доступ к загруженным файлам и предоставляя их только через код на стороне сервера. Ваш код читает и повторяет содержимое файла, таким образом гарантируя, что он никогда не обрабатывается веб-сервером как сценарий
Другой вариант - настроить веб-сервер так, чтобы он не разрешал обработку сценариев файлов в каталоге загрузки. Эта конфигурация зависит от веб-сервера. Однако, например, в Apache вы можете добиться этого, войдя в конфигурацию вашего сервера:
<Directory "path-to-upload-dir">
AllowOverride None
Options -ExecCGI
</Directory>
AllowOverride None не важен, так как он останавливает загрузку файла .htaccess в каталог загрузок и повторную настройку разрешений веб-сервера для этого. каталог.
Chmod в каталоге не может этого сделать, и, более того, ваш веб-сервер может интерпретировать .php как исполняемый файл независимо от режима. Вы, вероятно, захотите указать, какой сервер вы используете, вы можете использовать директиву .htaccess или аналогичную.
Обратите внимание, что «выполнить» в каталогах означает «иметь доступ к файлам внутри каталога», поэтому это должно устанавливается, если вы хотите, чтобы ваш веб-сервер имел доступ к файлам внутри ...