[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Копирование столбца
Александр Мутылев
Привет всем. Подскажите пожалуйста, каким образом можно скопировать 1 столбец из таблицы базы данных в эту же таблицу, но под другим именем по нажатию на кнопку. Опишите процедуру, пожалуйста, поподробней. Заранее БОЛЬШОЕ спасибо).



Спустя 5 минут, 1 секунда (31.07.2012 - 16:51) DarkLynx написал(а):
Не понял. У вас есть таблица, и по нажатию кнопки Вам надо скопировать значение одной ячейки в другую ячейку этой же таблицы?

Спустя 6 минут, 42 секунды (31.07.2012 - 16:57) Александр Мутылев написал(а):
Нет) спасибо за быстрый ответ. У меня есть база данных, в ней таблица, в той таблице есть столбец, который нужно скопировать в в эту же таблицу, но под другим именем.

Спустя 1 минута, 29 секунд (31.07.2012 - 16:59) Александр Мутылев написал(а):
ну, или не по кнопке. хоть как-то...)

Спустя 15 минут, 47 секунд (31.07.2012 - 17:15) DarkLynx написал(а):
Понял.
Почитайте про ALTER TABLE
А вообще, опишите задачу, посмотрим что там у Вас, потому как то что Вы сейчас хотите мракобесие какое то... Если это конечно не форма для создания таблиц, но тогда встает вопрос в копировании.. короче опишите задачу..

Спустя 14 минут, 39 секунд (31.07.2012 - 17:29) Александр Мутылев написал(а):
Вы правы, я наверное не правильно сформулировал задачу. Поясню так: я сделал то, что хотел с помощью
 update table set p2 = p1
. Мне нужно было всего-лишь скопировать данные из столбца p1 в столбец p2.

p1 и p2 - столбцы таблицы table.

Спасибо за сотрудничество).

Спустя 10 минут, 11 секунд (31.07.2012 - 17:39) DarkLynx написал(а):
Цитата (Александр Мутылев @ 31.07.2012 - 15:29)
Вы правы, я наверное не правильно сформулировал задачу. Поясню так: я сделал то, что хотел с помощью
 update table set p2 = p1
. Мне нужно было всего-лишь скопировать данные из столбца p1 в столбец p2.

p1 и p2 - столбцы таблицы table.

Спасибо за сотрудничество).

Я это у Вас первым сообщением спросил...

Спустя 2 минуты, 30 секунд (31.07.2012 - 17:42) Александр Мутылев написал(а):
) еще раз: спасибо)
я вас не понял tongue.gif

Спустя 8 минут, 50 секунд (31.07.2012 - 17:51) inpost написал(а):
не понимаю необходимости этой. Что-то не то ты хочешь сделать smile.gif

Спустя 8 минут, 57 секунд (31.07.2012 - 18:00) Александр Мутылев написал(а):
Мне нужно сделать статистику на сайте. Я решил сделать так: скопировать данные определенного столбика таблицы, который изменялся в течении года. и вставить его в эту же таблицу, но под другим именем.
В этом году все данные из старого столбика обнулят.)
а процедуру с копированием столбика теперь буду повторят каждый год перед обнулением и пополнять статистику. вот) надеюсь правильно объяснил) у меня же мозги кипят) целый день за компом) если есть какие-то предложения или замечания по поводу моей статистики, пишите. всегда рад диалогу.

Спустя 3 минуты, 1 секунда (31.07.2012 - 18:03) inpost написал(а):
Всё равно не понял необходимости создавать дубли. Данные то уже есть, зачем точно такую же копию делать не понимаю...

Спустя 7 минут, 42 секунды (31.07.2012 - 18:10) Александр Мутылев написал(а):
я же сказал: "этот столбик я обнулю" и в этом году у него будут совсем другие значения, а скопированный столбик я вывожу на сайте, для того, что-бы проследить изменения (статистику).

например у меня есть столбик "2012"
в след году "2013"
и т.д.

и есть таблица:
год Значения
2012 Значения_1
2013 Значения_2
2014 Значения_3
вот)

Спустя 4 минуты, 2 секунды (31.07.2012 - 18:14) inpost написал(а):
ну ок, ты создаёшь 2013 год. Но зачем в неё копировать данные из 2012? Всё с нуля должно начаться.

Спустя 1 минута, 12 секунд (31.07.2012 - 18:16) DarkLynx написал(а):
Цитата (Александр Мутылев @ 31.07.2012 - 16:10)
я же сказал: "этот столбик я обнулю" и в этом году у него будут совсем другие значения, а скопированный столбик я вывожу на сайте, для того, что-бы проследить изменения (статистику).

например у меня есть столбик "2012"
в след году "2013"
и т.д.

и есть таблица:
год Значения
2012 Значения_1
2013 Значения_2
2014 Значения_3
вот)

Ты каждый год будешь новый столбик в таблицу добавлять??
Или я что то не так понял?

Спустя 53 секунды (31.07.2012 - 18:16) Александр Мутылев написал(а):
Цитата (DarkLynx @ 31.07.2012 - 16:16)
Ты каждый год будешь новый столбик в таблицу добавлять??
Или я что то не так понял?

да)

Спустя 1 минута, 38 секунд (31.07.2012 - 18:18) DarkLynx написал(а):
Цитата (Александр Мутылев @ 31.07.2012 - 16:16)
Цитата (DarkLynx @ 31.07.2012 - 16:16)
Ты каждый год будешь новый столбик в таблицу добавлять??
Или я что то не так понял?

да)

Да что?
Да не так понял или Да буду добавлять?

Если "Да буду добавлять" то ты просто зверина..
А нельзя сделать таблицу с отчетами и туда добавлять записи
год => данные из поля которое собирало что то там за этот год.

Потом обнулять тот столбик что собирал статистику и записывать туда по новый и в конце года опять сделать запись в таблицу с отчетом..

Добавлено: Не правильно выразился.. не "А нельзя сделать таблицу с отчетами и туда добавлять записи " а "Надо сделать таблицу с отчетами и туда добавлять записи"

Спустя 12 секунд (31.07.2012 - 18:18) inpost написал(а):
А ты никогда не задумывался, что таблицу надо делать не вертикальную, а горизонтальную? Новый год = новая запись, а не новый столбец.

Спустя 4 минуты, 43 секунды (31.07.2012 - 18:23) Александр Мутылев написал(а):
Цитата (inpost @ 31.07.2012 - 16:18)
А ты никогда не задумывался, что таблицу надо делать не вертикальную, а горизонтальную? Новый год = новая запись, а не новый столбец.

не понял

Спустя 1 минута, 13 секунд (31.07.2012 - 18:24) Александр Мутылев написал(а):
погоди, сейчас разберусь с твоим предложением

Спустя 4 минуты, 38 секунд (31.07.2012 - 18:29) Александр Мутылев написал(а):
Цитата (DarkLynx @ 31.07.2012 - 16:18)
Цитата (Александр Мутылев @ 31.07.2012 - 16:16)
Цитата (DarkLynx @ 31.07.2012 - 16:16)
Ты каждый год будешь новый столбик в таблицу добавлять??
Или я что то не так понял?

да)

Да что?
Да не так понял или Да буду добавлять?

Если "Да буду добавлять" то ты просто зверина..
А нельзя сделать таблицу с отчетами и туда добавлять записи
год => данные из поля которое собирало что то там за этот год.

Потом обнулять тот столбик что собирал статистику и записывать туда по новый и в конце года опять сделать запись в таблицу с отчетом..

Добавлено: Не правильно выразился.. не "А нельзя сделать таблицу с отчетами и туда добавлять записи " а "Надо сделать таблицу с отчетами и туда добавлять записи"

у меня офигительно большая таблица и такое же количество значения. то-есть каждый год в этом столбике от 1000 и больше значений. вы предлагаете эти значения вручную вписывать?

Спустя 9 минут, 23 секунды (31.07.2012 - 18:38) Александр Мутылев написал(а):
Объясните, пожалуйста, я может правда жизнь себе усложняю unsure.gif

Спустя 34 минуты, 18 секунд (31.07.2012 - 19:13) kamanch написал(а):
Александр Мутылев
Ты себе ее просто нереально усложняешь.
Мало того, что каждый год тебе будет необходимо создавать новый столбец в таблице, так тебе еще каждый год придется менять код скрипта, который статистику обрабатывает.

Да, скрипты по обработке статистики тяжелы и долго считают, т.к. перелапачивают огромные объемы данных, но так и должно быть - статистика должна вычисляться, а не храниться в базе.
Другими словами, правила архитектуры DB гласят, что никакое поле в таблице не должно быть получено путем вычислений других полей.
INSERT INTO `table_name` ('a', 'b', `a_b_summ`) VALUES (1, 2, 1+2)
//
Так не должны быть устроены таблицы

А ты именно это и хочешь сделать.

Давай сюда свою структуры таблицы и хочушки к статистике, что должно считаться и как.

Спустя 11 минут (31.07.2012 - 19:24) DarkLynx написал(а):
Цитата (Александр Мутылев @ 31.07.2012 - 16:29)

у меня офигительно большая таблица и такое же количество значения. то-есть каждый год в этом столбике от 1000 и больше значений. вы предлагаете эти значения вручную вписывать?

Ну во первых, я уверен что вашу огромную таблицу можно привести к нормальной архитектуре и получившиеся уже не будут такими огромными.
Во вторых заполнять вручную... хм.. Если бы программисты все делали в ручную нафига тогда вообще программировать?

Спустя 2 минуты (31.07.2012 - 19:26) Александр Мутылев написал(а):
Цитата (DarkLynx @ 31.07.2012 - 17:24)
Цитата (Александр Мутылев @ 31.07.2012 - 16:29)

у меня офигительно большая таблица и такое же количество значения. то-есть каждый год в этом столбике от 1000 и больше значений. вы предлагаете эти значения вручную вписывать?

Ну во первых, я уверен что вашу огромную таблицу можно привести к нормальной архитектуре и получившиеся уже не будут такими огромными.
Во вторых заполнять вручную... хм.. Если бы программисты все делали в ручную нафига тогда вообще программировать?

я же совсем не против Вашей помощи. Я, просто придумал самую простую альтернативу. теперь слушаю ваши советы и делаю выводы.

Спустя 2 минуты, 19 секунд (31.07.2012 - 19:28) DarkLynx написал(а):
Цитата (Александр Мутылев @ 31.07.2012 - 17:26)
Цитата (DarkLynx @ 31.07.2012 - 17:24)
Цитата (Александр Мутылев @ 31.07.2012 - 16:29)

у меня офигительно большая таблица и такое же количество значения. то-есть каждый год в этом столбике от 1000 и больше значений. вы предлагаете эти значения вручную вписывать?

Ну во первых, я уверен что вашу огромную таблицу можно привести к нормальной архитектуре и получившиеся уже не будут такими огромными.
Во вторых заполнять вручную... хм.. Если бы программисты все делали в ручную нафига тогда вообще программировать?

я же совсем не против Вашей помощи. Я, просто придумал самую простую альтернативу. теперь слушаю ваши советы и делаю выводы.

Каманч (прости если не верно написал) отписал Вам.
Пришлите Вашу архитектуру и что должна выводить статистика. Мы Вам поможем.

Спустя 45 секунд (31.07.2012 - 19:29) Александр Мутылев написал(а):
Цитата (DarkLynx @ 31.07.2012 - 17:28)
Цитата (Александр Мутылев @ 31.07.2012 - 17:26)
Цитата (DarkLynx @ 31.07.2012 - 17:24)
Цитата (Александр Мутылев @ 31.07.2012 - 16:29)

у меня офигительно большая таблица и такое же количество значения. то-есть каждый год в этом столбике от 1000 и больше значений. вы предлагаете эти значения вручную вписывать?

Ну во первых, я уверен что вашу огромную таблицу можно привести к нормальной архитектуре и получившиеся уже не будут такими огромными.
Во вторых заполнять вручную... хм.. Если бы программисты все делали в ручную нафига тогда вообще программировать?

я же совсем не против Вашей помощи. Я, просто придумал самую простую альтернативу. теперь слушаю ваши советы и делаю выводы.

Каманч (прости если не верно написал) отписал Вам.
Пришлите Вашу архитектуру и что должна выводить статистика. Мы Вам поможем.

ок) уже набираю

Спустя 10 минут (31.07.2012 - 19:39) Александр Мутылев написал(а):
Структура таблицы БД:
id fullname shortname .... total_pupils (изменяемое) ........
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . .

[*]столбец "total_pupils (изменяемое)" постоянно изменяется, вплоть до определенного момента. это столбец отображается на сайте в таблице + другие столбцы.
[*] в таблице отображается значение того shortname, который вошел на сайт под своим логином
[*]значения из поля total_pupils (изменяемое) мне нужно сохранить и вывести отдельно на сайте в другую таблицу - статистика. в ней должно размещается несколько столбцов с: 2012, 2013.... .

Спустя 36 секунд (31.07.2012 - 19:39) Александр Мутылев написал(а):
Вот как-то так

Спустя 23 минуты, 33 секунды (31.07.2012 - 20:03) kamanch написал(а):
Т.е. у тебя total_pupils меняется, и 1 января в 00:00 сбрасывается в 0, а тебе нужно сохранить последнее значение, которое в нем было для прошедшего года?

Спустя 4 минуты, 6 секунд (31.07.2012 - 20:07) Александр Мутылев написал(а):
Верно)

Спустя 9 минут, 10 секунд (31.07.2012 - 20:16) kamanch написал(а):
Таблица pupils_stat
Поля:
pupils_id;
user_id;
pupils_value;
pupils_year;


Перед сбросом столбца total_pupils в твоей таблице, пишешь в pupils_stat текущее значение.

И далее твоя статистика выглядит так:
$start_year; // начало интересующего периода
$end_year; // конец интересующего периода

$query = "SELECT * FROM `pupils_stat` WHERE `pupils_year` >= '" . $start_year . "' and `pupils_year` <= '" . $end_year . "' WHERE ....."
И данная структура и в 2050 ом году будет работать корректно, без изменений в базе и коде.

Хотя, сдается мне, что что-то ты не договорил.
Откуда берется значение total_pupils ? Как оно вычисляется?

Спустя 15 минут, 47 секунд (31.07.2012 - 20:32) Александр Мутылев написал(а):
Цитата (kamanch @ 31.07.2012 - 18:16)
Таблица pupils_stat
Поля:
pupils_id;
user_id;
pupils_value;
pupils_year;


Перед сбросом столбца total_pupils в твоей таблице, пишешь в pupils_stat текущее значение.

И далее твоя статистика выглядит так:
$start_year; // начало интересующего периода
$end_year; // конец интересующего периода

$query = "SELECT * FROM `pupils_stat` WHERE `pupils_year` >= '" . $start_year . "' and `pupils_year` <= '" . $end_year . "' WHERE ....."
И данная структура и в 2050 ом году будет работать корректно, без изменений в базе и коде.

Хотя, сдается мне, что что-то ты не договорил.
Откуда берется значение total_pupils ? Как оно вычисляется?

спасибо) как-только разберусь, обязательно напишу)

Спустя 4 минуты, 45 секунд (31.07.2012 - 20:37) Александр Мутылев написал(а):
Цитата (Александр Мутылев @ 31.07.2012 - 18:32)
Цитата (kamanch @ 31.07.2012 - 18:16)
Таблица pupils_stat
Поля:
pupils_id;
user_id;
pupils_value;
pupils_year;


Перед сбросом столбца total_pupils в твоей таблице, пишешь в pupils_stat текущее значение.

И далее твоя статистика выглядит так:
$start_year; // начало интересующего периода
$end_year; // конец интересующего периода

$query = "SELECT * FROM `pupils_stat` WHERE `pupils_year` >= '" . $start_year . "' and `pupils_year` <= '" . $end_year . "' WHERE ....."
И данная структура и в 2050 ом году будет работать корректно, без изменений в базе и коде.

Хотя, сдается мне, что что-то ты не договорил.
Откуда берется значение total_pupils ? Как оно вычисляется?

спасибо) как-только разберусь, обязательно напишу)

Все, я понял)) Спасибо большое.) буду реализовывать) Очень хорошая идея)
Спасибо-спасибо)

Спустя 18 минут, 57 секунд (31.07.2012 - 20:56) kamanch написал(а):
Александр Мутылев
Это не идея. Это парадигма в архитектуре баз данных.
Почитай про нормальные формы таблиц, будет проще жить smile.gif

Спустя 1 минута, 43 секунды (31.07.2012 - 20:57) Александр Мутылев написал(а):
) ок. tongue.gif
ссылку не кинешь?

Спустя 6 минут, 2 секунды (31.07.2012 - 21:03) kamanch написал(а):

Спустя 2 минуты, 45 секунд (31.07.2012 - 21:06) Александр Мутылев написал(а):
Цитата (kamanch @ 31.07.2012 - 19:03)
blink.gif Ну на http://citforum.ru/database/dbguide/4-5.shtml

Спасибо, буду изучать) biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.